Nat*_*ael 5 wpf viewmodel eventaggregator
我是MVVW模式的新手,所以如果我问一个非常基本的问题,你将不得不原谅我.
我有两个ViewModel,我们称之为TreeViewViewModel和ListViewViewModel.TreeViewViewModel在其视图中绑定到IsSelected属性.每当IsSelected更改时,我都需要通知ListViewViewModel以便它可以更新它的视图.
经过一些网上研究,我遇到了EventAggregator,看起来它可能是一个很好的解决方案.
这是正确的解决方案吗?如果是这样,我该如何实施呢?或者,我应该考虑更好的解决方案吗?下面是我认为可以将EventAggregator集成到发布事件的ViewModel中的简化版本.
public class TreeViewViewModel : INotifyPropertyChanged
{
public bool IsSelected
{
get { return _isSelected; }
set
{
if (value == _isSelected)
return;
_isSelected = value;
OnPropertyChanged("IsSelected");
// Is this sane?
_eventAggregator.GetEvent<TreeViewItemSelectedEvent>().Publish(value);
}
}
protected virtual void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Run Code Online (Sandbox Code Playgroud)
您当然可以使用事件聚合器,但您不需要事件聚合器来完成如此简单的事情。您可以简单地ListViewViewModel听一下TreeViewViewModel.PropertyChanged。
| 归档时间: |
|
| 查看次数: |
1895 次 |
| 最近记录: |