AvalonDock 2.0 PRISM RegionAdapter带有布局保存和加载功能?

9

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

我为AvalonDock DockingManager编写了一个RegionAdapter,这使得我可以在我的Prism模块中使用RegionViewRegistry注册视图,并且它们会被AvalonDock中的LayoutAnchorable对象包装。

这一切都很好,但是当保存和加载布局时出现问题。当我从我的模块添加视图时,它通过RegionAdapter并正确地序列化(我有一个后序列化步骤,向输出添加一些自定义XML以提供关于显示在哪些LayoutAnchorable中的模块的信息)。

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

问题是,如果随后尝试对此进行序列化,我就无法得到在反序列化中添加的LayoutAnchorables。

我想听听任何成功创建AvalonDock + Prism +布局保存和加载的人的建议。

我已经评估了Infragistics和SyncFusion的DockManagers,并且甚至更不成功,它们都没有在反序列化时提供回调以允许我注入自定义视图。

1个回答

2
我大约一年前尝试过这个,但因为基于MVVM的带有AvalonDock的示例应用程序对我来说运行良好而放弃了。我知道区域适配器解决了什么问题,但对我的应用程序并不必要。
在我的个人项目Wide中,我使用PRISM(用于服务和模块化)+ AvalonDock(停靠)+布局保存,没有使用区域适配器。还有一些其他的项目 - SharpDevelopGemini,它们使用AvalonDock + 加载/保存,但没有使用PRISM。#D构建自己的模块化框架,而Gemini使用Caliburn.Micro框架。
总的来说,我建议您查看上述提到的开源项目,看看是否可以从中找到有用的东西。希望这有所帮助!

我担心这可能是事实;没有本地支持动态内容注入和布局持久性。无论如何,感谢您的回复。 - Dutts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接