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:为信使注册通用类

mvvm light messenger允许您注册带有特定对象的消息,只需将该注册放在全局可用的代码的一部分中,但是您这样做,就像在父视图模型中一样,然后您注册带有类型ShowMessage的消息。然后,任何时候消息被任何类发送,只要附加了ShowMessage类,它就会被捕获。

看到这些:http://blog.galasoft.ch/lbugnion/archive/2009/09/27/mvvm-light-toolkit-messenger-v2-beta.aspx

MVVM light:将对象从视图传递到视图模型