MVVM&序列化 - 如何访问类的实例?

时间:2013-05-30 19:13:55

标签: c# serialization mvvm

我正在尝试学习如何使用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的实例的情况下,我真的不知道该怎么做。

1 个答案:

答案 0 :(得分:5)

我建议您首先重新考虑序列化ViewModel的需求。

通常,您希望序列化基础模型。 ViewModel只是一个中介,以View可以理解的方式呈现Model数据。如果您的ViewModel包含要序列化和传递的数据,您可以考虑将其推送到模型中。

对于一般的序列化技术,有很多。请参阅MSDN documentation(底部有演练)。