AvalonDock具有不同ObservableCollection的多个LayoutDocumentPane包含动态创建的UserControls

问题描述

我有一个基于AvalonDock的UI,其中至少包含三个静态LayoutDocumentPanes。如何动态地用不同的UserControl集合填充这些窗格? 我发现,我可以为整个DockingManager设置一个DocumentSource,然后可以使用此Collection生成所有窗格的元素。

我可以使用多个源集合,还是可以为每个LayoutDocumentPane过滤我的集合?

<xcad:DockingManager  
            DocumentsSource="{Binding MyUserControls1}">
          
            <xcad:DockingManager.Resources>
                <DataTemplate DataType="{x:Type local:MyUserControl}">
                        <local:MyUserControl/>   
                </DataTemplate>
            </xcad:DockingManager.Resources>

    <xcad:LayoutRoot>
        <xcad:LayoutPanel Orientation="Horizontal" >
            <xcad:LayoutPanel Orientation="Vertical" DockWidth="6*">
                <xcad:LayoutPanel Orientation="Horizontal">
                            <xcad:LayoutDocumentPaneGroup>
                                <xcad:LayoutDocumentPane>
                                <!-- UserControls from ObservableCollection 1-->
                                </xcad:LayoutDocumentPane>
                            </xcad:LayoutDocumentPaneGroup >
                            <xcad:LayoutDocumentPaneGroup>
                                <xcad:LayoutDocumentPane >
                                <!-- UserControls from ObservableCollection 2-->
                                </xcad:LayoutDocumentPane>
                            </xcad:LayoutDocumentPaneGroup >
                            <xcad:LayoutDocumentPaneGroup>
                                <xcad:LayoutDocumentPane >
                                <!-- UserControls from ObservableCollection 3-->
                                </xcad:LayoutDocumentPane>
                            </xcad:LayoutDocumentPaneGroup >
                </xcad:LayoutPanel>
            </xcad:LayoutPanel>
        </xcad:LayoutPanel>
     </xcad:LayoutRoot>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)