我想创建一个事件并订阅另一个 ViewModel。事件处理程序在第一个 ViewModel 上始终为 null。在第一个 Viewmodel 中,我声明了 Event 并提出如下
public event EventHandler EditSearchChanged;
并提出为
if (EditSearchChanged != null)
{
EditSearchChanged(this, null);
}
在第二个 Viewmodel 中,我声明了第一个 Viewmodel 的属性。
private EditTileViewModel editTileVM;
public EditTileViewModel EditTileVM
{
get
{
return editTileVM ?? (editTileVM = new EditTileViewModel());
}
set
{
editTileVM = value;
RaisePropertyChanged();
}
}
并订阅事件如下
EditTileVM.EditSearchChanged += EditTileVM_EditSearchChanged;
private void EditTileVM_EditSearchChanged(object sender, EventArgs e)
{
this.EditTileVM = (sender as EditTileViewModel);
}