1

如何绑定到一个模型,以便 Avalon Dock 2 将其视为浮动窗格?

基本上,我想打开一个可以停靠的窗口,理想情况下有一个 MVVM 解决方案。但是我能做的最远的事情就是获得可锚定的东西,而且我无法吸引停靠管理器让它们漂浮。

<xcad:DockingManager AnchorablesSource="{Binding Tools}">

    <xcad:DockingManager.LayoutItemContainerStyle>
        <Style TargetType="{x:Type xcad:LayoutItem}">
            <Setter Property="Title" Value="{Binding Model.Title}"/>    
        </Style>
    </xcad:DockingManager.LayoutItemContainerStyle>

    <xcad:DockingManager.LayoutItemTemplate>
        <DataTemplate>
            <ContentControl cal:View.Model="{Binding . }" IsTabStop="False" />
        </DataTemplate>
    </xcad:DockingManager.LayoutItemTemplate>

</xcad:DockingManager>
4

1 回答 1

1

我没有按照您对浮动窗口的建议进行操作,但我已经设法将 Caliburn.Micro 与 AvalonDock 集成。您需要几个示例来帮助您和文档。

  1. 下载AvalonDock 源代码
  2. 下载Gemini 源代码(Caliburn.Micro 和 AvalonDock 的混搭)。

简而言之,将 LayoutInitializer 与 ToolViewModelBase 上的属性结合使用,以指示可锚定对象应以浮动方式打开。

<avalonDock:DockingManager.LayoutUpdateStrategy>
  <local:LayoutInitializer/>
</avalonDock:DockingManager.LayoutUpdateStrategy>

下面是感兴趣的 AvalonDock 源代码,您会在 Gemini 中找到等效的源代码。

.\Version2.0\AvalonDock.MVVMTestApp\ToolViewModel.cs

.\Version2.0\AvalonDock.MVVMTestApp\LayoutInitializer.cs

于 2013-09-28T05:26:35.250 回答