當我打電話ShowRevertInventorySignDialogView()
通過COMMAND,事件引發ObjectNullException。我在考慮Object不會像CurrentViewModel
財產那樣處置。事件是空甚至對象不設置
兩個GetReport()
和ShowRevertInventorySignDialogView()
功能通過命令調用被綁定到按鈕。我很確定GetReport()
函數首先被調用,以便在引發事件之前創建對象。
我在這裏錯過了什麼?
class MainWindowViewModel : ViewModel{
public ViewModel CurrentViewModel
{
get { return currentViewModel; }
set { currentViewModel = value; NotifyPropertyChanged(); }
}
public void GetReport()
{
inventoryReportViewModel = new InventoryReportViewModel();
inventoryReportViewModel.OnStatusChange += Event_OnStatusChange;
CurrentViewModel = inventoryReportViewModel;
}
}
public class InventoryReportViewModel : InventoryBaseViewModel
{
public event EventHandler<StatusChangeEventArgs> OnStatusChange;
private void ShowRevertInventorySignDialogView()
{
OnStatusChange(this, new StatusChangeEventArgs("test",10));
....
....
}
}
XAML;
<ContentControl Content="{Binding Path=CurrentViewModel}" Margin="20 10 20 0"></ContentControl>
不知道爲什麼它是空的,但您應經常檢查事件是否調用前空。 – juharr
什麼時候調用GetReport和ShowRevertInventorySignDialogView? –
@juharr我故意刪除它來檢查問題 – onurfoca