我想在我的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