MVVM Light中消息传递的定义

时间:2014-06-30 15:05:32

标签: c# .net mvvm mvvm-light

我正在尝试学习使用MVVM Light Toolkit,但我没有找到具体的定义是什么

  

"消息"

  

" Messenger Class"

mvvm light - messaging 有人问过这个问题,但在阅读答案中给出的文章之前,任何人都可以给出一个具体的定义,告知消息在MVVM中的意义吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

在某些情况下,在viewmodel中创建属性并将其链接到视图并不容易。您需要一个类将任何属性从WPF后面的代码绑定到viewmodel。

在以下示例中,每次用户从网格(视图)中选择多行时,使用Messenger类将所选行的数量传递给viewmodel:

//在视图中

public MainWindow(){
    InitializeComponent();
    this.MyGrid.SelectionChanged += MyGrid_SelectionChanged;
}

void MyGrid_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
    Messenger.Default.Send<IList>(this.MyGrid.SelectedItems);
}

//在viewmodel中

private IList _numFilasSeleccionadas;

        public IList NumFilasSeleccionadas
        {
            get { return _numFilasSeleccionadas; }
            set 
            { 
                _numFilasSeleccionadas = value;
                RaisePropertyChanged("NumFilasSeleccionadas");
            }
        }

private void RegisterCommands()
        {
            Messenger.Default.Register<IList>(this, d => this.NumFilasSeleccionadas = d);
        }