1

我正在创建具有 DocumentViewModel 类的小型图形编辑器(继承自我的 PaneViewModel 类,该类继承自 GalaSoft.MVVMLIGHT.ViewModelBase)。DocumentViewModel 代表一个图像(应用程序一次可以处理几个图像,所以我决定收集 DocumentViewModel)。我想在保存项目时序列化 DocumentViewModel 并在加载项目时反序列化。但是我不能这样做,因为应用程序在序列化时抛出异常(“GalaSoft.MvvmLight.ViewModelBase 未标记为可序列化)。这个问题有什么解决方法吗?使用序列化作为加载/保存机制是否正确?

4

1 回答 1

2

听起来您想序列化应用程序状态。如果您想使用 MVVM Light 执行此操作,则创建一个注入到视图模型中的应用程序状态服务/对象。使用它来管理您的应用程序状态(哪个视图模型处于活动状态等)。

让您的应用程序状态服务在检测到应用程序正在保存时自行保存。让它在启动时检查序列化对象并使用它来重新加载应用程序状态当前设置。Viewmodels 使用它来确保状态是一致的。

于 2012-11-24T20:49:00.890 回答