如何创建新的自定义视图(UserControl)?阿瓦隆码头

How to create new custom View(UserControl)? AvalonDock

我使用完美的库 AvalonDock,我注意到在 运行 程序中单击 "File->New" 时创建了文本文档。但是,我想创建的不是文本文档,而是一些带有我的按钮及其视图模型的用户控件。

我找到了创建新文本文档的代码:

private void OnNew(object parameter)
{
   _files.Add(new FileViewModel());
   ActiveDocument = _files.Last();
}

现在:

想实施:

此代码创建 TextDocument 可能吗?你有一些如何实现它的教程吗?

我的问题是如何使用 ViewModel 创建 UserControl 而不是文本文档?

GEMINI 就是一个很好的例子。

您可以使用 StyleSelector 和 DataTemplateSelector 来完成。

真的很简单。如果我将 DataTemplate 中的 TextBox 替换为称为 SomeUserControlUserControl,它实际上被 UserControl 替换,我可以插入任何控件:

<Window x:Class="AvalonDock.MVVMTestApp.NewWindow"
    ....
    xmlns:local="clr-namespace:AvalonDock.MVVMTestApp">

  <avalonDock:DockingManager.LayoutItemTemplateSelector>
    <local:PanesTemplateSelector>
      <local:PanesTemplateSelector.FileViewTemplate>
        <DataTemplate>
           <!--<TextBox Text="{Binding TextContent, UpdateSourceTrigger=PropertyChanged}"/>-->            
           <local:SomeUserControl/>
        </DataTemplate>
      </local:PanesTemplateSelector.FileViewTemplate>      
    .....                               
  </avalonDock:DockingManager.LayoutItemTemplateSelector>
</Window>

AvalonDock对接真是爽windows控!