AvalonDock:多工具 windows 布局
AvalonDock: Multiple tool windows layout
我正在使用著名的对接库 AvalonDock 2.0 in my WPF project. The library supports MVVM and that's what I'm trying to do. A sample MVVM test application is available on GitHub。我下载了示例并对其进行了扩展以显示我需要的布局,大致如下所示:
---------------------------
| | |
| | T1 |
| |----|
| Docs | |
| | T2 |
| |----|
| | |
| | T3 |
---------------------------
如您所见,我有一个主文档区和一个工具区,其中有 3 个 LayoutAnchorable
停靠在右侧并垂直堆叠。使用 MVVM,我的 window 的 ViewModel 公开了一个名为 Tools
的 属性,returns 一个包含我所有工具 windows 的 ViewModel 的数组。然后我将这个 属性 绑定到我在 XAML.
中的停靠控件的 AnchorablesSource
属性
然而,问题是 AvalonDock 将 3 个工具窗格显示为 3 个选项卡,而不是垂直堆叠它们。
这里有人用过 AvalonDock 和 MVVM 吗?我在这里的前进方向是什么? LayoutInitializer
class对解决这个问题有什么作用吗?
后来的研究表明,实际上 LayoutInitializer
class 的工作是将 ViewModel 对象分配给我的 LayoutAnchorablePane
。布局本身仍应在 XAML 内定义(或者如果您愿意,可以通过代码隐藏)。这从理论上也是正确的; ViewModel 不应该负责管理布局 (View)。
我正在使用著名的对接库 AvalonDock 2.0 in my WPF project. The library supports MVVM and that's what I'm trying to do. A sample MVVM test application is available on GitHub。我下载了示例并对其进行了扩展以显示我需要的布局,大致如下所示:
---------------------------
| | |
| | T1 |
| |----|
| Docs | |
| | T2 |
| |----|
| | |
| | T3 |
---------------------------
如您所见,我有一个主文档区和一个工具区,其中有 3 个 LayoutAnchorable
停靠在右侧并垂直堆叠。使用 MVVM,我的 window 的 ViewModel 公开了一个名为 Tools
的 属性,returns 一个包含我所有工具 windows 的 ViewModel 的数组。然后我将这个 属性 绑定到我在 XAML.
AnchorablesSource
属性
然而,问题是 AvalonDock 将 3 个工具窗格显示为 3 个选项卡,而不是垂直堆叠它们。
这里有人用过 AvalonDock 和 MVVM 吗?我在这里的前进方向是什么? LayoutInitializer
class对解决这个问题有什么作用吗?
后来的研究表明,实际上 LayoutInitializer
class 的工作是将 ViewModel 对象分配给我的 LayoutAnchorablePane
。布局本身仍应在 XAML 内定义(或者如果您愿意,可以通过代码隐藏)。这从理论上也是正确的; ViewModel 不应该负责管理布局 (View)。