使用Messenger从ViewModel向ViewModel 2发送订单,您如何区分ADD / DEL?

时间:2010-10-16 20:57:11

标签: wpf communication viewmodel mediator

我有一个CustomerListViewModel和一个OrderListViewModel。在后者我选择一个删除它的命令或我创建一个新的命令。在这两种情况下,我的CustomerListViewModel和Messenger必须注册到IOrder类型:

Messenger.Default.Register<IOrder>(this, AddOrder);
Messenger.Default.Register<IOrder>(this, DeleteOrder);

In the OrderListViewModel I do send the customer to be deleted/added:

Messenger.Default.Send<IOrder>(MyOrderObject);

Now both Actions AddOrder and DeleteOrder gets surely executed, how can I differentiate ?

1 个答案:

答案 0 :(得分:0)

如果是插入或删除,则所有者不会发送任何提示。因此,接收者只能自己猜测或发现。 我的建议是引入其他消息类型(IAddOrder,IDeleteOrder),s.t。发件人有一个界面来告诉变更的类型。 如果这不可能,您需要在IOrder中添加一些信息,但这只是一个有臭味的解决方法,因为在交换消息后不再需要数据。