0

関連するビュー間でデータを共有するための適切なパターンは何ですか?.

1 つのフォームに多くの小さなビューが含まれるアプリケーションがあり、各ビューは多かれ少なかれ互いに独立して動作します (イベント バスを介して通信/対話します)。時々、同じオブジェクトを子ビューに渡す必要があります。この同じオブジェクトを子ビューに渡す必要があり、子がそれを別の子自体に渡すことがあります。

親フォーム (ビュー) 内に含まれるすべてのビュー間でこのデータを共有するための適切な方法は何ですか?

私は CAB とそのアプローチを調べましたが、すべての「ビュー」には「ルート作業項目」があり、この作業項目には、含まれるビュー間の共有「状態」を含む辞書があります。

これは最善のアプローチですか?ルートビューの下のすべてのビューがアクセスできる共有辞書だけですか?

現在の私の現在のアプローチは、ビューにオブジェクトを設定できる関数をビューに持たせることです。何かのようなもの

view.SetCustomer(Customer c); 

次に、ビューに子ビューが含まれている場合、それを子ビュー ala に設定することがわかっています。

this.childview1.SetCustomer(c);

アプリケーションは、IoC/DI プロバイダーとして構造マップを使用する MVP を使用する winforms 用に、C# 3.5 で記述されています。

4

2 に答える 2

0

共有データは、ビューではなく、基になるモデルに属している必要があるようです。

この共有がどのように行われるかについては、何かが個々のビューを作成し、モデルへの参照を与えていると思いますか? これは、共有を使用するための適切なメカニズムのようです。

于 2010-05-10T04:35:11.320 に答える
0

Josh Smith と Marlon Grech は、メモリ リークを防ぐために弱参照を使用する実装でメディエーター パターンを使用します。これをチェックしてください:

http://marlongrech.wordpress.com/2009/04/16/mediator-v2-for-mvvm-wpf-and-silverlight-applications/

于 2010-05-10T04:23:37.057 に答える