Ich möchte ein Ereignis erstellen und abonnieren ist auf einem anderen ViewModel. Der Event-Handler erhält immer Null auf dem ersten ViewModel. Im ersten Ansichtsmodell erklärte ich Ereignis und hob alsEventHandler ist immer Null?
public event EventHandler EditSearchChanged;
und aufgewachsen als
if (EditSearchChanged != null)
{
EditSearchChanged(this, null);
}
Im zweiten Ansichtsmodell folgt, habe ich eine Eigenschaft des ersten Ansichtsmodell erklärt.
private EditTileViewModel editTileVM;
public EditTileViewModel EditTileVM
{
get
{
return editTileVM ?? (editTileVM = new EditTileViewModel());
}
set
{
editTileVM = value;
RaisePropertyChanged();
}
}
und das Ereignis abonniert wie folgt
EditTileVM.EditSearchChanged += EditTileVM_EditSearchChanged;
private void EditTileVM_EditSearchChanged(object sender, EventArgs e)
{
this.EditTileVM = (sender as EditTileViewModel);
}
Hier EditSearchChanged ist null – subminer
Ist es möglich, dass die Zeile 'EditTileVM.EditSearchChanged + = EditTileVM_EditSearchChanged;' wird nie ausgeführt und deshalb nie gesetzt? Vielleicht etwas mehr Code liefern? – mnemonic
können Sie einen Debugger bei 'EditTileVM.EditSearchChanged + = EditTileVM_EditSearchChanged' platzieren und prüfen, ob es ausgelöst wird? – Rohit