0

I have a WPF Prism Application with e.g. several Customers i want to edit. So i have 5 Tabs for 5 customers for example. Each customer has 5 subtabs, like setting, details etc.

When I load a Customer or update it I want a prism event published to every subtab gets updated. The only problem is: the other subtabs will get updated with the same customer aswell... which is not the plan :D

So is it possible that only the active tab and those viewmodels can subscribe to the event, or something like this?

Thanks for help!

4

1 に答える 1

0

私はしばらく前にこのようなことをしました

正確な詳細を思い出せませんが、タブはイベントをサブスクライブしLoadConsumerMessage、メッセージには通常のメッセージプロパティに加えてIdフィールドとフィールドの2つの追加プロパティがありましたIsHandled

特定のタブでコンシューマーをロードする場合は、必要なタブIdのIDをに入力します。たとえば、現在のタブで顧客を読み込むには、

// Id was typically a Guid
var event = new LoadConsumerEvent() { Id = this.Id; };

次に、イベントを処理するサブスクライバーで、イベントが一致しなかった場合は無視します

if (e.Id == Guid.Empty || e.Id == this.Id)
{
    // Load Customer
}

イベントを処理するために最初に使用可能なタブのみが必要な場合はIsHandled、最初のサブスクライバーにプロパティを設定し、イベントがtrueの場合は無視します。

if (e.IsHandled)
    return;

// Do processing

e.IsHandled = true;
于 2012-06-12T16:50:35.770 に答える