我想在我的wpf应用程序中使用AvalonDock,这是一个MVVM应用程序。环顾四周,我找不到任何示例应用程序,显示如何执行此操作。展示如何在MVVM应用程序中使用Avalondock的示例代码
AlavonDock说它具有对MVVM的本地支持,所以应该很容易支持mvvm,但是没有示例代码。
我的问题是:
- 怎么写,有一个文件管理器XAML和它绑定到 视图模型?
- 如何在此场景中将新文档添加到面板?
- 如何从documentmanegr获得有关布局的信息(如果可能的话)。
我想在我的wpf应用程序中使用AvalonDock,这是一个MVVM应用程序。环顾四周,我找不到任何示例应用程序,显示如何执行此操作。展示如何在MVVM应用程序中使用Avalondock的示例代码
AlavonDock说它具有对MVVM的本地支持,所以应该很容易支持mvvm,但是没有示例代码。
我的问题是:
我觉得这是你所需要的
Code Project - Avalon tutorial
有一个示例应用中AvalonDock的CodePlex网站源代码 - 它不包括在正常下载。你需要去Source Control page然后点击'下载'。
此外,我写了一个示例应用程序,也可以用来开始,我写了一个quick blog post describing it和put it on GitHub。
基本上,你可以设置LayoutItemContainerStyle
缩小视图之间和你的ViewModel的差距,例如:
<Window ...
xmlns:dock="http://schemas.xceed.com/wpf/xaml/avalondock"
xmlns:dockctrl="clr-namespace:Xceed.Wpf.AvalonDock.Controls;assembly=Xceed.Wpf.AvalonDock"
>
...
<dock:DockingManager DataContext="{Binding DockManagerViewModel}"
DocumentsSource="{Binding Documents}" >
<dock:DockingManager.LayoutItemContainerStyle>
<!-- you can add additional bindings from the layoutitem to the DockWindowViewModel -->
<Style TargetType="{x:Type dockctrl:LayoutItem}">
<Setter Property="Title" Value="{Binding Model.Title}" />
<Setter Property="CloseCommand" Value="{Binding Model.CloseCommand}" />
<Setter Property="CanClose" Value="{Binding Model.CanClose}" />
</Style>
</dock:DockingManager.LayoutItemContainerStyle>
</dock:DockingManager>
</Window>
在这个例子中,DockManagerViewModel具有与具有的ViewModels的集合的属性“文档” Title,CloseCommand和CanClose属性。
这是一个非常好的例子...使用AvalonDock 2.0与MVVM设计范例 – aggietech