Tabcontrol WPFを使用しているときにリストボックス内の項目を選択する

リストボックスがTabcontrolにあるとき、リストボックス内のアイテムの選択に問題があります。 リストボックス内のアイテムは選択できません。 私はコードビハインドを介してリストボックスを動的に塗りつぶしていますが、ドラッグアンドドロップを使用していますが、ドラッグ&ドロップはtabcontrolを使用しています。

ここに私のXAMLコードがあります:




    
        
            
                
                    
                    
                
                
                    
                    
                    
                
                
                
                
                
                            
        
    


    
        
            
        
        
            
            
            
            
        
        

Tabcontrolを削除すると、すべてが機能しています。 私は誰かが私を助けたり、問題が何であるかを知ることができたら嬉しいです

挨拶

2
あなたのコードを試しましたが、ビジー信号が "ビジー"でない限り、リストから何も選択するのに問題はありません。だから私はあなたがここに投稿したxamlに問題はないと思う。おそらく、リストに物を追加する方法や、いくつかのイベントプロセッサーに物事を追加する方法を知ることは有益でしょう。
追加された 著者 Liz,

1 答え

私は問題を発見した。 問題は、MicrosoftがMessageHandlesをどのように設計したかです。 アイテムの子がメッセージをスローした場合(たとえば、selectionChanged)、メッセージはハンドルではない場合、メッセージは親アイテムに移動します。 したがって、私の場合、ListBox内の項目をクリックすると、(未処理の)メッセージ "selectionChanged"がTabControlに送信されましたが、これは問題でした。私はTabControl.selectionChangedにカスタムコードを持っているので、リストボックス内の項目を選択する代わりに、常にコードを実行しました。

回避策は、このコードをListBoxのselectionChangedイベントハンドラに配置することです。

private void ListBox_selectionChanged(object sender, DragEventArgs e)
{
    e.handled = true;
}

これにより、子メッセージハンドラから親メッセージハンドラへのメッセージの転送が回避されます。

私はあなたの説明を理解することができますように願っています。

2
追加された