私は2つ持っていListViews
ます(別々のビューで)。これらのビューは別々のビューモデルにバインドされていListViews
ますが、同じエンティティタイプが含まれています。どちらのビューでも、ユーザーはアイテムを選択して、その詳細/編集ビューに移動できます。
この詳細ビューを2つのリストビュー間で共有するにはどうすればよいですか?
これが私が試したことです:
選択したアイテムを詳細ビューのビューモデルのプロパティに割り当てます
これは最初は機能しているように見えましたが、実際にはKendoMVVMを壊しています。アイテムはリストビューのビューモデルにあるため、別のビューモデルのプロパティにアイテムを割り当てると問題が発生します。
各ビューのショーイベントでデータを更新する
これはほぼ機能しますが、いくつかの問題があります。1)常に最新のデータを取得するのは遅くなる可能性があります。2)詳細ビューに変更を保存してリストビューに戻る場合、保存は非同期であるため、ListViewデータを呼び出す前にそれらの変更が保持される保証はありません。これは、MVVMとオブザーバブルの利点の1つも無効にします。
ビュー間でビューモデルを共有する
私が見たリストと詳細ビューの例では、両方のビューがビューモデルをselectedItem
プロパティと共有しています。同じ詳細ビューに移動する2つのリストビューがあるため、これは特定のケースでは不可能です。ビューモデルが巨大にならないように、ビューごとに個別のビューモデルを使用することをお勧めします。混乱。すべてのビューで単一のビューモデルを共有する必要がありますか?
私は何が欠けていますか?