1

DocumentViewModelクラス(GalaSoft.MVVMLIGHT.ViewModelBaseから継承するPaneViewModelクラスから継承する)を持つ小さなグラフィックエディターを作成しています。DocumentViewModelは1つの画像を表します(アプリケーションは一度に少数の画像を処理できるため、DocumentViewModelのコレクションを用意することにしました)。プロジェクトを保存するときにDocumentViewModelをシリアル化し、プロジェクトをロードするときに逆シリアル化したいのですが。ただし、シリアル化中にアプリケーションが例外をスローするため、これを行うことはできません(「GalaSoft.MvvmLight.ViewModelBaseはシリアル化可能としてマークされていません)。この問題の回避策はありますか?読み込み/保存メカニズムとしてシリアル化を使用するのは正しいですか?

4

1 に答える 1

2

アプリケーションの状態をシリアル化したいようです。MVVM Lightを使用してこれを行う場合は、ビューモデルに挿入されるアプリケーション状態サービス/オブジェクトを作成します。これを使用して、アプリケーションの状態(アクティブなビューモデルなど)を管理します。

アプリケーションが保存中であることを検出したら、アプリケーション状態サービスにそれ自体を保存させます。起動時にシリアル化されたオブジェクトをチェックし、これを使用してアプリケーションの状態を現在の設定にリロードします。ビューモデルはこれを使用して、状態の一貫性を確保します。

于 2012-11-24T20:49:00.890 に答える