1

イベントの登録について疑問に思った後 (ここでViewModel Event Registration と ViewModel Lifetimeを見つけることができます)、ビューモデルの廃棄について考えています。

廃棄の場合、ViewModel のシリアル化は適切なアプローチですか? 異なるビューモデルが同じクラスへの参照を持っている場合について考えています。Viewmodels のシリアライゼーションとデシリアライゼーションの場合、参照されたクラス インスタンスが重複したインスタンスを持つ可能性がありますね。

すべてのアプリデータを含めるという独自の目的を持つ特殊な状態クラスを用意することは良いことではありません.everyviewmodelはそこからデータを取得し(データへの参照を意味します)、そこにあるデータを更新し、アプリはそれらの特殊化されたクラスをシリアル化することだけを考えます?

このテーマに関する経験は大歓迎です。

よろしくSkyG

4

1 に答える 1

1

Caliburn Microでは、フレームワークにこの機能が多数組み込まれているため、ビュー モデルまたはグラフ全体のプロパティを電話の状態とアプリの設定の両方に保存できます。クラスを作成し、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();  
}   
于 2012-02-09T15:34:31.503 に答える