我正在创建具有DocumentViewModel类的小型图形编辑器(继承自继承自GalaSoft.MVVMLIGHT.ViewModelBase的PaneViewModel类)。 DocumentViewModel表示一个图像(应用程序可以一次处理几张图像,所以我决定收集DocumentViewModel)。我想在保存项目时序列化DocumentViewModel,并在加载项目时反序列化。然而,我不能这样做,因为应用程序在序列化时抛出一个异常(“GalaSoft.MvvmLight.ViewModelBase没有标记为可序列化)。是否有解决此问题的方法?使用序列化作为加载/保存机制是否正确?MVVM Light - ViewModel Serialization
1
A
回答
2
这听起来像是你想要序列化应用程序状态,如果你想用MVVM Light做到这一点,那么创建一个应用程序状态服务/对象,它被注入视图模型,用它来管理你的应用程序状态(哪个视图模型是活动的,等)
当你的应用程序检测到应用程序正在保存时,你的应用程序状态服务会自动保存,当它启动时检查一个序列化的对象,并使用它来重新加载应用程序状态当前设置ViewModels消耗这个以确保该状态是一致的。
+0
请链接任何示例链接? – VivekDev
相关问题
- 1. Mvvm Light ViewModel With ViewModel
- 2. MVVM Light - ViewModel reusage
- 3. MVVM Light ViewModelLocator:如何注册Singleton ViewModel?
- 4. MVVM Light ViewModel实例的可混合性
- 5. MVVM Light Messages - 多个ViewModel实例
- 6. 使用MVVM Light从ViewModel查看通知
- 7. MVVM Light Messaging问题
- 8. 使用MVVM Light中的ViewModels?
- 9. MVVM Light - PivotControl
- 10. MVVM Light太快:)
- 11. mvvm light wpf unregister
- 12. MVVM Light Messenger类
- 13. PropertyChanged WPF MVVM Light
- 14. MVVM Light Messaging
- 15. MVVM light listview selecteditem
- 16. mvvm light - messaging
- 17. MVVM Light Binding
- 18. 从MVVM Light捕获RaisePropertyChanged?
- 19. MVVM Light绑定到RIA IEnumerable
- 20. MVVM Light - 更改启动URI
- 21. ViewModelLocator中的ViewModels MVVM Light
- 22. MVVM light toolkit messenger问题
- 23. MVVM Light Messenger执行多次
- 24. MVVM ViewModel与MVC ViewModel
- 25. 使用MVVM Light的CommandParameter
- 26. MVVM Light Messenger接收方法
- 27. 使用mvvm-light将对象发送到VIewModel
- 28. ViewModel在MVVM Light中没有收到消息
- 29. MVVM Light和SQL Server CE在viewmodel中生成的代码
- 30. 如何在try catch语句中包装MVVM Light ViewModel?
为什么你需要序列化你的viewmodel? – syned
因为它包含有关文档 - 空间区域(可写位图封装到一个类)的全部信息,标题,历史,图层和我想保存此文档(序列化到项目文件)和加载(反序列化)。 – fex
MVVM代表模型 - 视图 - 视图模型您的数据在模型和视图模型中,模型和视图之间只有一层。你应该考虑什么是你的数据(Model)并且序列化和反序列化它。 – syned