1

我有一个通用的 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<>一个处理程序作用于不同的有效负载(因为处理程序不需要知道有关有效负载的任何信息)

4

1 回答 1

0

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

看到这些:

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

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

于 2013-05-20T18:21:50.433 回答