AvalonDock 2.0 PRISM RegionAdapter的布局保存和加载?

Dut*_*tts 9 c# wpf docking avalondock

有没有人设法使用Prism模块和AvalonDock的动态注入视图成功加载和保存布局?

我有一个用于AvalonDock DockingManager的RegionAdapter,它允许我在Prism模块中使用RegionViewRegistry注册视图,它们被AvalonDock中的LayoutAnchorable对象包装.

这一切都正常,除了保存和加载布局.当我从我的模块中添加一个视图时,它会通过RegionAdapter并正确序列化(我有一个后序列化步骤,它将一些自定义XML添加到输出中,以便为我提供有关在LayoutAnchorable中显示的模块的一些信息).

当我加载布局时,我实现了LayoutSerializationCallback,将内容设置为适当的模块视图并正确显示.

问题是如果我随后尝试序列化,我永远不会得到反序列化中添加的LayoutAnchorables.

我有兴趣听到任何设法创建AvalonDock + Prism +布局保存和加载的人.

我对Infragistics和SyncFusion的DockManagers进行了评估,并且取得了更少的成功,它们都没有在反序列化上提供回调以允许我注入我的自定义视图.

Cha*_*dra 2

我大约一年前尝试过这个,然后放弃了,因为带有 AvalonDock 的基于 MVVM 的示例应用程序对我来说工作得很好。我了解区域适配器解决了什么问题,但这对于我的应用程序来说不是必需的。

我在我的个人项目Wide 中使用 PRISM(用于服务和模块化)+ AvalonDock(对接)+ 布局保存,无需区域适配器。还有一些其他项目 - SharpDevelopGemini使用 AvalonDock + 加载/保存而不使用 PRISM。#D 构建了自己的模块化框架,Gemini 使用 Caliburn.Micro 框架。

总的来说,我建议您看一下上面提到的开源项目,看看是否可以从中找到有用的东西。希望这可以帮助!