【发布时间】:2014-10-27 07:05:24
【问题描述】:
我已经建立了一个类库,作为一个可以被其他项目继承的 GUI 框架。此应用程序基于项目 Wild 和 Gemini。
我的问题是在使用标准序列化程序恢复 Avalon Dock 的布局时
var layoutSerializer = new XmlLayoutSerializer(manager);
其中manager 是类型DockingManager。经理恢复并清空选项卡。我的猜测是 Caliburn Micro 找不到存储的 ViewModel(名为 HomeViewModel)。但是,我正在努力确认这一点。
我相信我的引导程序是正确的,并且正确设置了 MEF 容器以允许解析外部类型。我已将项目调试到我认为发生此问题的程度,并且在输出窗口中我可以看到发生附加的Attach(Home)(注意,“Home”是HomeViewModel 的显示名称)。但是,我不知道附加过程有什么问题,因为这是由 MEF/Caliburn 处理的。
我真的很想调试这个,想知道是否
- 任何人都可以就如何进行调试过程提供任何有见地的建议?
- 有人愿意看看解决方案吗?
我已经花了很多时间调试这个没有任何运气,这个问题非常深奥和虚幻,以至于这里的大多数帖子都与我无关。
感谢您的宝贵时间。
【问题讨论】:
-
一个可以重现该问题的工作示例将不胜感激。
-
嗨@pushpraj,非常感谢您的回复。这个要死我了!这是项目1drv.ms/1A4v40R 的GUI 部分的链接。它不是最小的,因为我也包含了 packages 文件夹。如果你能帮助我,我愿意为你提供代表。另外,一旦你下载了这个,你能告诉我,这样我就可以锁定它。非常感谢...
-
如果您构建项目并运行它,您将看到打开了“主页”选项卡。现在,默认情况下,所有
Documents对象或更准确的LayoutItemBase对象都将其ShouldReopenOnStartup属性设置为false。但是,如果您在打开“主页”选项卡的情况下关闭应用程序,则会创建ApplicationState.bin,您将看到HomeViewModel被写入打开的文档中。现在,当程序启动备份时,这个项目不应该被恢复,但它是。我的想法是 MED/CaliburnMicro 没有找到该类型... -
这会导致空白类型被恢复。我采用这种机制来打开和关闭来自Gemini 的文档,因为以推荐的方式执行还原时存在一些错误。我使用的开局策略应该与双子座的相同,并且双子座的工作正常。这就是为什么我认为这可能是一个解决问题。你觉得你可以看看这个吗?我会在适当的时候为这个问题增加一个赏金。
-
我已经下载了项目,你可以锁定相同的。让我有时间看看。这里有点晚了,希望我明天上来你不会介意。
标签: wpf mvvm mef caliburn.micro avalondock