0

Prismをベースにしたアプリを書き直しています。これはWAFに基づいており、Entity Frameworkを使用して、作業単位/リポジトリパターンを介してデータにアクセスします。

イベントアグリゲーターを使用して、新しい作業単位が利用可能になったとき(たとえば、保存後)にビューモデルに通知するつもりです。次に、提示しているモデルオブジェクトを、新しい作業単位からの新しい同等のものに置き換えることができます。

1.)これは合理的な考えですか?ビューモデルに古い情報が表示されていることを他にどのように通知できますか?

表示されているビューモデルのみをデータベースに再クエリします。現在表示されていないViewModelは、表示されるまで更新を遅らせることができます(これは、INavigationAwareインターフェイスを使用して行う予定です)。

2.)繰り返しますが、これは続行するための合理的な方法ですか?現在ユーザーに表示されているビューモデルと表示されていないビューモデルを区別するにはどうすればよいですか?

2.)の代替ソリューションとして、必要な場合にのみビューを作成し、非表示になったらすぐに破棄することを検討しています。これにより、「どのビューモデルが表示されるか」という質問は解決されますが、非常に費用がかかるようです。

3.)Prismはこのように使用されることを意図していますか?

4

2 に答える 2

1

1.)これは合理的な考えですか?ビューモデルに古い情報が表示されていることを他にどのように通知できますか?

これは、保存が必要な場合でも更新が必要な場合でも、ダーティデータを処理することになります。これを解決する1つの方法は、ViewModelがサービスからデータをプルすることです。これにより、データをオンデマンドで更新できます。

2.)繰り返しますが、これは続行するための合理的な方法ですか?現在ユーザーに表示されているビューモデルと表示されていないビューモデルを区別するにはどうすればよいですか?

CIを介してIoCとDIも活用する場合は、必要に応じてViewModelが存在し、構築時に実行時にビューに注入される必要があります。データの状態と永続性を管理するには、そのためのサービスを活用する必要があります。

3.)Prismはこのように使用されることを意図していますか?

Prismはサービスのビュッフェです。Prismは単一の製品ではありません。EventAggregatorクロスモジュール通信に使用されます。通信がモジュールにまたがっている場合は、はい、これを使用すると便利です。コミュニケーションが内部的なものである場合、単純なイベントで十分です。

可視の概念は、アプリケーションによって異なります。IActiveAware単なるインターフェースであり、実装ではありません。アプリケーションが表形式で構成されている場合はIActiveAware、その環境で適切に機能します。繰り返しになりますが、実装の詳細は、インターフェイスの使用方法において重要ですが、アプリケーションの構造によって決まります。

于 2012-12-12T20:22:06.377 に答える
0

ああ、ごめんなさい-私は私の質問に対する答えの大部分を見つけたと思います。

IActiveAwareインターフェース(http://compositewpf.codeplex.com/discussions/277463)について知りませんでした。これは、どのビューモデルが表示されているかを判断する問題を非常にうまく解決しているようです。

新しいデータが利用可能であることを彼らに知らせる方法にはまだ興味がありますが、質問がもう十分に残っておらず、削除する必要があるかどうかはわかります。

于 2012-12-12T20:15:57.260 に答える