1

カスタム オブジェクトのリストであるプロパティを提供するモデルがあるとします。モデルはシングルトンで、このプロパティの参照を ViewModel に渡します。これらのカスタム オブジェクトには、たとえばブール プロパティがあります。ユーザーは、ビューをクリックしてモデル内の参照を操作することで、これらの値を変更できます。したがって、モデル内のリストは変更されないため、リスト メンバーごとにイベント処理を実装しない限り、モデルは他のビューに通知できません。

一方、完全な新しいリストを割り当てると、モデルは他の人に通知します。

問題は、モデルの参照で作業するのが一般的に良い考えなのか、それともすべての ViewModel がリスト コンテンツのディープ コピーを作成し、後で完全な新しいリストをモデルに割り当てる必要があるのか​​ということです。そうでない場合は、モデルのリストのすべてのメンバーにイベント処理を追加する必要がありますか?

ところで。ObservableCollection はオプションではありません。アイテムの変更を検出しないためです。一般的なモデルでは Ilist インターフェイスを使用する必要があると思います。

4

1 に答える 1

2

あなたの質問に対する簡単な答えはありません。それはすべて、アプリケーションをどのように動作させたいかという問題です。

ユーザーが行った変更をアプリケーションですぐに有効にしたい場合は、モデルから返された参照を直接操作する必要があります。ただし、ユーザーの手には、アプリケーションがリストに変更を加えてユーザーに通知するイニシアチブを持っている場合に対処する必要があります。

一方、ユーザーが行った変更を[変更の適用]ボタンを押して検証する必要がある場合は、リストのクローンを作成するオプションがおそらく最良の選択です。

于 2012-09-06T04:38:45.077 に答える