AvalonDock:多个工具窗口布局

我在我的WPF项目中使用了着名的对接库AvalonDock 2.0。 该库支持MVVM,这就是我想要做的。 GitHub上提供了一个样本MVVM测试应用程序。 我下载了示例并将其扩展为显示我需要的布局,大致如下所示:

---------------------------
|                    |    |
|                    | T1 |
|                    |----|
|      Docs          |    |
|                    | T2 |
|                    |----|
|                    |    |
|                    | T3 |
---------------------------

正如你所看到的,我有一个主文档区域和一个工具区域,它有3个LayoutAnchorable ,它们对接到右侧并垂直堆叠。 使用MVVM,我的窗口的ViewModel公开了一个名为Tools的属性,它返回一个包含我所有工具窗口的ViewModel的数组。 然后,将该属性绑定到XAML中我的对接控件的AnchorablesSource属性。

但问题是AvalonDock将3个工具窗格显示为3个选项卡,而不是将它们垂直堆叠。

有没有人在这里使用MVVM的AvalonDock? 我在这里前进的方式是什么? LayoutInitializer类在解决这个问题上有什么作用吗?


后来的研究表明,它实际上是LayoutInitializer类将ViewModel对象分配给我的LayoutAnchorablePane的工作。 布局本身仍应该在XAML中定义(或者如果您愿意,可以通过代码隐藏)。 这从理论角度来看也是正确的; ViewModel不应该负责管理布局(View)。

链接地址: http://www.djcxy.com/p/57391.html

上一篇: AvalonDock: Multiple tool windows layout

下一篇: AvalonDock : DockableContent Context Menu Shows wrong list of menus