SelectionChanged イベントを持つ ComboBox がある場合、コントロールをロードしているときに発生します。
したがって、ページの読み込み時に SelectedValue を設定すると、SelectionChanged イベントが発生しますが、これは私が望んでいることではありません。
これを止めるための受け入れられたアプローチは何ですか?
SelectionChanged イベントを持つ ComboBox がある場合、コントロールをロードしているときに発生します。
したがって、ページの読み込み時に SelectedValue を設定すると、SelectionChanged イベントが発生しますが、これは私が望んでいることではありません。
これを止めるための受け入れられたアプローチは何ですか?
これに対する2つの明白な解決策は次のとおりです。1)ComboBoxを含むWindow / Page / UserControlのLoadedイベントまで待機し、そこでSelectionChangedをフックします...たとえばコンストラクターで:
// set the inital selected index for the combo box here...
this.Loaded += (s, args) =>
{
cmbBox.SelectionChanged +=
new SelectionChangedEventHandler(HandleChanged);
};
または2)何かを行う前に、ComboBoxが選択変更ハンドラーにロードされていることを確認し、ロードされていない場合は戻ります...例:ハンドラー:
if (!cmbBox.IsLoaded)
return;
SelectionChangedハンドラーが起動されるたびにチェックを行う必要がないため、1番をお勧めします。