9

SelectionChanged イベントを持つ ComboBox がある場合、コントロールをロードしているときに発生します。

したがって、ページの読み込み時に SelectedValue を設定すると、SelectionChanged イベントが発生しますが、これは私が望んでいることではありません。

これを止めるための受け入れられたアプローチは何ですか?

4

2 に答える 2

18

これに対する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番をお勧めします。

于 2010-05-04T00:40:54.677 に答える