2016-06-27 5 views
-1

各ListBoxItemにIntegerUpDownを持つListBoxコントロールがあります。すべてうまく動作しますが、IntegerUpDownが最小値または最大値に達すると、無効な矢印をクリックするとリストボックスのセレクテッド・イベントがトリガーされます。 Disabled arrowIntegerUpDownトリガー親コントロールSelectionChangedイベント

private void lbItem_SelectionChanged(Object sender, SelectionChangedEventArgs e) 
{  
    if (//e.source != integerupdowncontrol) 
     //update other view, etc. 
} 

答えて

0

あなたは無効に設定されている場合SelectionChangedEventArgs.Handledtrueにご使用不可の状態をチェックし、selectionchangedイベントにフックしようとした、とありますか?ここで

SelectionChangedEventArgs MSDN

private void OnSelectionChanged(Object sender, SelectionChangedEventArgs args){ 
     if(/*My min or max has been reached*/){ 
      args.Handled = true; 
      return; 
     } 
} 

がある別のexample with keypressed

+0

selectionchangedイベントはいえIntegerUpDownコントロールから来た場合はどのように確認するのでしょうか? SourceとOriginalSourceの両方がリストボックスを指しています。イベントがIntegerUpDownから発生したことが分かっていない限り、私はそれを処理できません。 – sponge

+0

あなたのコードを投稿しない限り、私は本当に詳細を提供することはできません@スポンサー –

+0

Handled = trueに設定したIntegerUpDownのMouseLeftButtonDownイベントを追加することで問題を解決しました。しかし、それは "ハッキング"と感じます。 – sponge

関連する問題