如何绑定到模型,以便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>
答案 0 :(得分:1)
我还没有完成你对浮动窗口的建议,但我设法将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