有没有人设法使用Prism模块和AvalonDock的动态注入视图成功加载和保存布局?
我有一个用于AvalonDock DockingManager的RegionAdapter,它允许我在Prism模块中使用RegionViewRegistry注册视图,并且它们被AvalonDock中的LayoutAnchorable对象包装。
这一切都正常,除了保存和加载布局。当我从我的模块中添加一个视图时,它会通过RegionAdapter并正确序列化(我有一个后序列化步骤,它将一些自定义XML添加到输出中,以便为我提供有关在LayoutAnchorable中显示的模块的一些信息)。 / p>
当我加载布局时,我实现了LayoutSerializationCallback,将内容设置为适当的模块视图并正确显示。
问题是,如果我随后尝试将其序列化,我永远不会获得在反序列化中添加的LayoutAnchorables。
我有兴趣听到任何设法创建AvalonDock + Prism +布局保存和加载的人。
我对Infragistics和SyncFusion的DockManagers进行了评估,并且取得了更少的成功,它们都没有在反序列化上提供回调,以允许我注入我的自定义视图。
答案 0 :(得分:2)
我在大约一年前试过这个并放弃了,因为基于MVVM的AvalonDock示例应用程序对我来说运行良好..我理解区域适配器解决了什么,但我的应用程序没有必要。
我使用PRISM(用于服务和模块化)+ AvalonDock(对接)+布局保存在我的个人项目Wide 中,而不用区域适配器。还有一些其他项目 - SharpDevelop,Gemini使用AvalonDock +加载/保存而不使用PRISM。 #D构建了自己的模块化框架,Gemini使用Caliburn.Micro框架。
总的来说,我建议你看看上面提到的开源项目,看看你是否能从中找到有用的东西。希望这有帮助!