2012-02-09 4 views
1

は、今私はviewmodelのツームストーンを考えている、(あなたはここでViewModel Event Registration and ViewModel Lifetime見つけることができますか)? 私は、異なるビューモデルが同じクラスへの参照を持っている場合について考えています。 ViewModelsのシリアライゼーションとデシリアライズの場合、参照されたクラスインスタンスが重複したインスタンスを持つ可能性がありますか?SerializeをVM状態クラス対イベント登録の私のwonderings後

すべてのアプリケーションデータを格納するユニークな目的を持つ特殊な状態クラスを持つ方が良いとは限りません。everyviewmodelはそこからデータを取得してデータを更新し、その中のデータを更新するだけですそれらの特殊なクラスを直列化しますか?

この件に関するご意見はありがとうございます。

よろしく SkyG

答えて

1

Caliburn Microは、あなたが携帯電話の状態とアプリの両方の設定にビューモデルやグラフ全体のプロパティを保存することができframworkに内蔵され、このをたくさん持っています。クラスを作成し、StorageHandlerから継承する必要があります。

public class PivotPageModelStorage : StorageHandler<PivotPageViewModel> 
{ 
    public override void Configure() 
    { 
     this.ActiveItemIndex().InPhoneState().RestoreAfterViewLoad(); 
    } 
} 

他の投稿された質問に。 CMには、電話での強制ビューの最初のアプローチを扱う素晴らしい方法があります。 VMを指定することでページのナビゲーションを行うことができ、残りの部分を処理します。さらに、ボーナスとして、パラメータを指定して渡すと、CMがクエリ文字列から取り除かれ、ターゲットVMのプロパティが設定されます。

public void GotoPageTwo() 
{ 
    navigationService.UriFor<PivotPageViewModel>().WithParam(x => x.NumberOfTabs, 5).Navigate(); 
} 
+0

私はcaliburn.microを一度試してみましたが、それは有望ですが、私はそれを少し過度に禁じていました。私はまだプロダクションプロジェクトに自信を持っていません。私はプロジェクトの途中でいくつかの驚きがあることを恐れています。今は非常に軽いツールキットを使うことを好みます。おそらくStorageHandlerが素晴らしいアイデアを得るためにどのように働くか見てみる価値があるので、ありがとう! – SkyG

+0

これは軽いので、それはマイクロと呼ばれている:)実際には、私は著者があなたが話していることに取り組んでいると思う。物事をさらに細かく分割して、あなたが望むものを使うことができるようにします。 –

関連する問題