【发布时间】:2016-02-08 13:07:41
【问题描述】:
所以问题在but not answered 或not answered the way I would like 之前被问过
我知道如何创建我想要实现的布局,在 XAML 中使用 LayoutAnchorablePaneGroup、LayoutAnchorablePane 和 LayoutDocument,但我想以 MVVM 方式使用 Avalondock,将我的 XAML 减少到:
<avalonDock:DockingManager x:Name="dockingManager"
DataContext="{Binding DockManagerViewModel}"
DocumentsSource="{Binding Documents}"
AnchorablesSource="{Binding Anchorables}"
Loaded="dockingManager_Loaded"
Unloaded="dockingManager_Unloaded">
填写Documents 和Anchorables 会使所需的窗口出现在停靠管理器中,但我不知道如何确定它们将出现的位置。
如何指定一些规则(最好在 XAML 中)来构建特定的布局,而不会失去 MVVM 分离?
例如:类型 A 的对象都应该放在右侧的 LayoutAnchorablePane 中,类型 B 的对象都放在左侧的 LayoutAnchorablePane 中等等。
提前致谢。
【问题讨论】:
-
这是一个相当宽泛的问题,除了你引用的那些答案,如stackoverflow.com/a/32567244/2224701,或codeproject.com/Articles/239342/AvalonDock-and-MVVM
-
是的,我看过那些。链接 1 对于学习一般的 Avalondock MVVM 方法非常有用,但它没有回答我的问题(或者我不明白答案),而我不确定链接 2 是否仍然相关。由于它不使用
DataContext、DocumentSource或AnchorablesSoruce,因此使旧的 Avalondock 版本与 MVVM 兼容可能是一个拐杖。我希望使用 AvalonDock 2.0 可能会有更简单的方法。 -
那么您已经遵循了 CodePlex AvalonDock MVVM 示例应用程序方法并且您遇到了 Anchorables 的一些特定问题?
but I don't see how I can secify the place in which they will appear-place到底是什么意思?你需要实现一些特定的初始布局吗?考虑让你的问题更具体一点。
标签: c# wpf mvvm avalondock xceed