如何创建新的自定义View(UserControl)? AvalonDock

问题描述 投票:1回答:2

我使用完美的库AvalonDock,我注意到在运行程序中单击“文件 - >新建”时创建了文本文档。但是,我想创建不是Text Document,而是使用我的按钮及其viewmodel创建一些UserControl。

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

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

现在:enter image description here

想要实施:enter image description here

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

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

c# wpf mvvm user-controls avalondock
2个回答
1
投票

GEMINI就是一个很好的例子。

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


0
投票

这很简单。如果我用被称为TextBoxDataTemplate替换UserControl中的SomeUserControl,它实际上被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是非常酷的对接窗口控制!

© www.soinside.com 2019 - 2024. All rights reserved.