【问题标题】:How to bind my UserControl to an AvalonDock如何将我的 UserControl 绑定到 AvalonDock
【发布时间】:2015-02-13 14:29:31
【问题描述】:

请让我在试图理解某些事情时失去理智,我真的需要一些方向,因为我迷路了。

我创建了一个名为 TerminalControl 的 UserControl,它有一个视图,其中包含一个 TextBox,该视图绑定到视图模型中的 Text 属性,该视图通过连接到嵌入式系统的 RS232 实时更新。 所以流程是数据到达 RS232(更新)==> VM.Text ==>(数据绑定)==> TerminalView.TextBox.Text

我只想通过数据绑定将此用户控件添加到 AvalonDock 2.0。

我在停靠管理器所在的窗口中创建了一个数据模板

  <avalonDock:DockingManager x:Name="dockManager"                                
                               DocumentsSource="{Binding ???}"                                   
                               Grid.Row="1">        
    <avalonDock:DockingManager.LayoutItemTemplateSelector>
        <vm:PanesTemaplateSelector>
            <vm:PanesTemaplateSelector.SessiomDataTemplate >
                <DataTemplate>
                    <Terminal:TerminalEditorView/>
                </DataTemplate>
            </vm:PanesTemaplateSelector.SessiomDataTemplate>        
        </vm:PanesTemaplateSelector>
    </avalonDock:DockingManager.LayoutItemTemplateSelector>

并在对接中创建文档

  <avalonDock:LayoutRoot>
        <avalonDock:LayoutPanel Orientation="Vertical">
            <avalonDock:LayoutDocumentPane/>
            <avalonDock:LayoutAnchorablePane Name="ToolsPane" DockHeight="150">
            </avalonDock:LayoutAnchorablePane>
        </avalonDock:LayoutPanel>
    </avalonDock:LayoutRoot>
</avalonDock:DockingManager>

我有一个创建 TerminalControl 并将 viewModel 返回到 MainWin 视图模型的模块。 我的问题是我不知道应该将 AvalonDock 的 DocumentSource 绑定到什么,如上所示。

我做错了什么? 我的架构有问题吗?

伙计们,任何帮助都将受到高度评价,因为我的想法已经不多了。

谢谢

【问题讨论】:

    标签: c# wpf user-controls


    【解决方案1】:

    好的,由于我的问题没有答案,这是我要解决的问题:

    • 我的 UserControl(终端)将实现一个接口 IUIWindow。
    • 此接口将由主视图模型保存在一个 observable 集合中,该集合将动态添加或删除 IUIWindow 元素。
    • 并且驻留在主视图中的 Avalon 扩展坞将绑定到其 DocumentSource 中的该集合。
    • 在绑定中,我将持有一个转换器,该转换器将从接口转换为 Document 期望的类型。

    这是我能找到的最佳解决方案,如果有人有任何意见/评论/建议,我将很高兴听到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 2012-06-06
      • 1970-01-01
      相关资源
      最近更新 更多