アプリをロードした後、SQL への接続が切断されることがあるという問題があります。プロパティのGET内でSQLをクエリする別の静的クラスプロパティにバインドされたコンボボックスのアイテムソースがあるため、これはしばしばエラーになります。Get 内で例外を処理できないようです。これを行うにはどうすればよいですか、またはバインドしている静的プロパティの Get で SQL を照会する方法ではありませんか? GetFrequencies メソッドは、静的プロパティと同じ静的クラスにあり、SQL からいくつかのものをクエリし、接続できない場合などに例外をスローします。基本的なプロパティとバインディングは次のとおりです。静的クラスのプロパティ (インスタンス):
public ObservableCollection<Frequency> ActiveFrequencies
{
get
{
ObservableCollection<Frequency> Actives = new ObservableCollection<Frequency>();
try
{
foreach (Frequency item in GetFrequencies(null, null, true))
{
Actives.Add(item);
}
}
catch (Exception e)
{
}
return Actives;
}
}
XAML でのバインド:
ItemsSource="{Binding ActiveFrequencies, Source={x:Static G:FrequencyData.Instance}}"
わかりましたので、代わりにビューモデル内にプロパティを作成しました:
public ObservableCollection<Frequency> ActiveFrequencies
{
get
{
ObservableCollection<Frequency> freqs = null;
try
{
freqs = FrequencyData.Instance.GetFrequencies(null, null, true);
}
catch(Exception ex)
{
}
return freqs;
}
}
しかし、私はまだCatchブロックでアプリを実際にシャットダウンすることはできません。最初に他のプロパティに進むようです。これは、メイン アプリケーション ビュー モデル内にあるユーザー コントロールのビューモデルです。代わりに、メイン ビュー モデルにメッセージを送信してシャットダウンする必要がありますか?