Я хочу создать мероприятие и подписаться на другой ViewModel. Обработчик события всегда получает нулевое значение для первого ViewModel. В первом ViewModel я объявил событие и вырос следующийEventHandler всегда имеет значение null?
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);
}
Здесь EditSearchChanged является нулевым – subminer
Возможно ли, что линия 'EditTileVM.EditSearchChanged + = EditTileVM_EditSearchChanged;' никогда не выполняется, и поэтому никогда не устанавливается? Может быть, еще немного кода? – mnemonic
вы можете поместить отладчик в 'EditTileVM.EditSearchChanged + = EditTileVM_EditSearchChanged' и проверить, запущен ли он? – Rohit