我正在尝试学习使用MVVM Light Toolkit,但我没有找到具体的定义是什么
"消息"
和
" Messenger Class"
mvvm light - messaging 有人问过这个问题,但在阅读答案中给出的文章之前,任何人都可以给出一个具体的定义,告知消息在MVVM中的意义吗? 谢谢!
答案 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);
}