当我的 ViewModel 中的属性发生时,我该如何处理发生的异常?该属性在 Loaded 事件之前发生。例如,我有一个属性(仅获取),它调用一些数据方法来返回状态集合以填充组合框的 itemsource。但有时 SQL 将无法连接,我得到一个例外。有多个这样的属性,我想告诉用户无法正确加载组合,然后将它们放回我的主屏幕。但是,如果它们都失败了,我不想要 5 个消息框。另外,为什么它继续尝试获取属性,即使我告诉它在第一个异常发生时进入主屏幕?注意:GetStatesList() 方法也有 try/catch 和 throw in the catch...
try
{
ObservableCollection<string> states=null;
// perform sql query
states=StateDat.Instance.GetStatesList(); //get the collection of state names
}
catch(Exception ex)
{
MessageBox.Show("Error"); //display an error message
MessengerInstance.Send(ViewModelNamesEnum.HomeVM); //go home
}