1

ViewModel get のプロパティが発生したときに発生する例外を処理するにはどうすればよいですか? プロパティは、Loaded イベントの前に発生します。たとえば、いくつかのデータ メソッドを呼び出して状態のコレクションを返し、コンボ ボックスの項目ソースを埋めるプロパティ (get-only) があります。しかし、SQL が接続されず、例外が発生することがあります。このようなプロパティが複数あります。コンボを正しくロードできなかったことをユーザーに伝えてから、ホーム画面に戻してください。ただし、すべてが失敗した場合、5 つのメッセージ ボックスは必要ありません。また、最初の例外が発生したときにホーム画面に移動するように指示したにもかかわらず、プロパティを取得しようとし続けるのはなぜですか? 注: GetStatesList() メソッドには、catch に try/catch と throw もあります...

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
}
4

2 に答える 2

1

ステートメントごとに try catch を使用するのではなく、1 つの try catch で 5 つのステートメントすべてを連続して使用します。したがって、例外が発生した場合、3 つに続く 2 番目のステートメントは実行されず、いずれにせよメッセージ ボックスは 1 つだけになり、元に戻ることができます。ホーム画面も問題なく

于 2013-10-21T16:57:37.973 に答える