2012-04-17 7 views
0

私は典型的なマスター/ディテールのシナリオを持っています。ユーザーはマスタービューで[新規追加]をクリックし、詳細ビューに詳細を入力できます。たとえば、商品のObservableCollectionのリストがあるとします。ユーザーが「新規追加」をクリックすると、ObservableCollectionに新しいProductレコードを追加してから、製品の詳細を追加するための詳細ビューを開きます。これは、ユーザーが製品を保存した場合にうまく機能します。ただし、ユーザーが新しい製品の追加をキャンセルすることを決定した場合、マスタービューでObservableCollection of Productからその製品を削除するにはどうすればよいですか。今はObservableCollectionのリファレンスをDetailsビューに渡す方法と、新しいProductレコードの削除についてマスタービューに通知するイベントを使用する方法の2つの方法が考えられます。何を指示してるんですか ?また、特にプリズムでこれを処理する方が良い場合は、教えてください。プリズム - マスタービューから新しく追加されたレコードを削除するための戦略

について、 Nirvan。

答えて

1

ObservableCollectionへの参照を詳細ビューに渡すことは、いいえではありません。これは、バインドされているレコードについてのみ認識する必要があります。

あなたはこのためのUIを指定していませんが、あなたのデザインに適している可能性のある方法はいくつかあります。しかし、これを行うには、合理的に不可抗力な方法の1つとして、EventAggregatorを使用して、マスタービューがサブスクライブできるイベントを公開する方法があります。そのイベントに対処する方法はマスタービューに任されており、さまざまなビューがさまざまな方法で対応できます。この特定のケースでは、マスタービューは現在選択されているアイテムをチェックすることができ、新規である場合(つまり、保存されていない場合は、IDのような重要な情報を持たない)、単にコレクションから削除して破棄できますそれ。

+0

マスターのUIはDataGridでUIの詳細はTabControlのtabitemです。返信ありがとう – Jatin

+0

slugster、私はEventAggregatorを使用し、それは素晴らしい動作します。機能を動作させるために追加しなければならなかったものがいくつかあります。どうもありがとう。 – Jatin

関連する問題