0

MVVM パターンを使用してオブジェクトをシリアル化する方法を学習しようとしています。MainViewModel連載したい作品があります。MainViewModelシリアライザーには、 my で作成するインスタンスが必要ですMainViewが、アクセス方法がわかりません。ここでのオプションは何ですか? ViewModels (またはモデル) をシリアル化するための最善の方法は何でしょうか? クラスを作成すること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 プロジェクトをシリアル化した経験のある人がいる場合は、何をすべきかについていくつかのガイドラインを教えてください。モデル/ビューモデル/などのインスタンスを見つける方法を知らなければ、何をすべきか本当にわかりません。

4

1 に答える 1

5

そもそも ViewModel をシリアル化する必要性を再考することをお勧めします。

通常、基になるモデルをシリアル化します。ViewModel は単なる仲介であり、View が理解できる方法で Model データを提示します。ViewModel にシリアル化して渡したいデータが含まれている場合は、代わりにモデルにプッシュすることを検討してください。

一般的なシリアライゼーション手法には、多くの手法があります。MSDN のドキュメントを参照してください(下部にチュートリアルがあります)。

于 2013-05-30T19:22:04.927 に答える