我正在尝试学习如何使用MVVM模式序列化对象。我有一个MainViewModel
我想序列化。序列化程序需要MainViewModel
的实例,该实例应该在我的MainView
中创建,但我无法弄清楚如何访问它。我有什么选择?对于我来说,管理序列化ViewModel(或者模型)的最佳途径是什么?让类static
帮助还是会破坏模式(从我看到MVVM在static
上看起来不是太大了?
我是一个没有经验的程序员(特别是涉及到MVVM),但我真的在这里尝试,我现在只是处于亏损状态。我真的很感激任何人可以帮助我弄清楚如何序列化我的ViewModel和模型。
"<Window.DataContext>
<local:MainViewModel/>
</Window.DataContext>
编辑:更多代码
private void SaveGameExecute()
{
ObjectSerializer<MainViewModel> objSerializer = new ObjectSerializer<MainViewModel>();
objSerializer.SaveSerializedObject(this, "Save.sav");
}
private void LoadGameExecute()
{
ObjectSerializer<MainViewModel> objSerializer = new ObjectSerializer<MainViewModel>();
/*****/ = objSerializer.GetSerializedObject("Save.sav");
}
编辑:无论我需要序列化什么,有人可以给我一些关于如何使用MVVM做这个的建议吗?如果是我需要序列化的模型,我仍然不知道如何访问它们的特定实例。如果有任何有序列化MVVM项目经验的人,请给我一些指导方针。在不知道如何定位models / viewmodels / etc的实例的情况下,我真的不知道该怎么做。
答案 0 :(得分:5)
我建议您首先重新考虑序列化ViewModel的需求。
通常,您希望序列化基础模型。 ViewModel只是一个中介,以View可以理解的方式呈现Model数据。如果您的ViewModel包含要序列化和传递的数据,您可以考虑将其推送到模型中。
对于一般的序列化技术,有很多。请参阅MSDN documentation(底部有演练)。