イベントを作成したいのですが、サブスクライブは別の ViewModel にあります。イベント ハンドラーは、最初の ViewModel で常に null を取得します。最初の Viewmodel で Event を宣言し、次のように発生させました
public event EventHandler EditSearchChanged;
として育てられた
if (EditSearchChanged != null)
{
EditSearchChanged(this, null);
}
2 番目の 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);
}