MVVM Light:为信使注册通用类
本文关键字:注册 信使 Light MVVM | 更新日期: 2023-09-27 18:13:51
我有一个通用的ShowMessage类,我想用它来携带数据:
class ShowMessage<T> {
private readonly T _Data;
public string Title { get; set; }
public T Data { get { return _Data; } }
public ShowMessage( T data) {
_Data = data;
}
}
在我的ViewModel我想注册所有可能的ShowMessage实例,但目前我还没有找到一种方法。是否有人注册了一个泛型基类(注意:我想只注册一次,而不是n次有一个干净的代码)
编辑:为了使我的问题更清楚:我知道我可以使用Register方法:
Messenger.Default.Register<List<string>>(this, StringList);
在本例中,我注册List<string>
。我想注册List<>
有一个处理程序作用于不同的有效载荷(因为处理程序不需要知道任何关于有效载荷)
mvvm light messenger允许您注册带有特定对象的消息,只需将该注册放在全局可用的代码的一部分中,但是您这样做,就像在父视图模型中一样,然后您注册带有类型ShowMessage的消息。然后,任何时候消息被任何类发送,只要附加了ShowMessage类,它就会被捕获。
看到这些:http://blog.galasoft.ch/lbugnion/archive/2009/09/27/mvvm-light-toolkit-messenger-v2-beta.aspx
MVVM light:将对象从视图传递到视图模型