1

私のwpfアプリケーションでlistboxItemを選択すると、リストボックスのSelectionChangedイベントが発生しません。ただし、外側のマージンをクリックするとイベントが発生します。下のスナップを見てください。

ここに画像の説明を入力

基本的に、赤い枠の内側(右画像)をクリックすると選択変更イベントが発生しませんが、外側の枠(白い部分)をクリックすると選択変更が発生します。

問題について検索しているときに、よくわかりませんが、イベント トンネリングが原因である可能性があることがわかりました。ただし、トンネリングについてはまだ少ししか知識がありません。

リストボックスアイテムをクリックすると選択が変更されるように、これがどのように機能するかを助けてください(赤いセクション)

質問をさらに明確にする必要がある場合は、私にさせてください。ここにもリストボックスコードを入れています

<ListBox x:Name="Listbox1" SelectionChanged="listBox1_SelectionChanged">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <ListBoxItem Margin="10" Content="{Binding Name}" Height="25" 
                                             BorderBrush="#FF404040" BorderThickness="0,0.25" />
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>

期待して感謝

4

1 に答える 1

4

ListBoxItemの中にDataTemplateaを入れたい理由が思いつきませんItemTemplate。のListBoxItem各要素に対して s が自動的に生成ListBoxされ、DataTemplate にあるものはすべてそのコンテンツとして使用されListBoxItemます。これが原因かもしれません。ListBoxItemListBoxItem

このようにしてみてください:

<ListBox x:Name="Listbox1" SelectionChanged="listBox1_SelectionChanged">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Label Margin="10" 
                   Content="{Binding Name}" 
                   Height="25"
                   BorderBrush="#FF404040" 
                   BorderThickness="0,0.25" />
         </DataTemplate>                        
    </ListBox.ItemTemplate>
</ListBox>
于 2013-03-05T06:29:54.727 に答える