2014-05-01 63 views
9

我想在我的wpf應用程序中使用AvalonDock,這是一個MVVM應用程序。環顧四周,我找不到任何示例應用程序,顯示如何執行此操作。展示如何在MVVM應用程序中使用Avalondock的示例代碼

AlavonDock說它具有對MVVM的本地支持,所以應該很容易支持mvvm,但是沒有示例代碼。

我的問題是:

  1. 怎麼寫,有一個文件管理器XAML和它綁定到 視圖模型?
  2. 如何在此場景中將新文檔添加到面板?
  3. 如何從documentmanegr獲得有關佈局的信息(如果可能的話)。

回答

10

有一個示例應用中AvalonDock的CodePlex網站源代碼 - 它不包括在正常下載。你需要去Source Control page然後點擊'下載'。

此外,我寫了一個示例應用程序,也可以用來開始,我寫了一個quick blog post describing itput 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屬性。

+0

這是一個非常好的例子...使用AvalonDock 2.0與MVVM設計範例 – aggietech

相關問題