我有一个使用ListBox
aListBoxItem
作为其容器的方法。问题是这似乎正在消耗事件(确切地说是部分事件),如果我点击我永远不会得到(但如果你点击它本身它会起作用)。DataTemplate
Expander
Expander
Click
HeaderSite
Expander
SelectedItem
Expander
ListBoxItem
关于如何Expander
玩得很好的任何想法ListBox
?
这是一个简化的 Xaml,它将重现问题(不需要后面的代码):
编辑代码已更新以更接近我的实际模板,但屏幕截图仍然来自以前的修订版(问题相同 - 这只是为了澄清第一个答案的问题)
<Window x:Class="ListBoxSample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<StackPanel>
<TextBlock>
<Run Text="Selected Item" />
<Run Text="{Binding ElementName=ListBox, Path=SelectedItem}" />
</TextBlock>
<ListBox x:Name="ListBox">
<ListBoxItem>
<Expander Header="Expandable Stuff 1">
<ListBox>
<ListBoxItem>1.1</ListBoxItem>
<ListBoxItem>1.2</ListBoxItem>
</ListBox>
</Expander>
</ListBoxItem>
<ListBoxItem>
<Expander Header="Expandable Stuff 2">
<ListBox>
<ListBoxItem>2.1</ListBoxItem>
<ListBoxItem>2.2</ListBoxItem>
</ListBox>
</Expander>
</ListBoxItem>
</ListBox>
</StackPanel>
</Window>
截图是预先编辑的
单击ListBoxItem
结果 a SelectedItem
:
单击 Expander 导致没有 SelectedItem
更新(单击是在 Expander 1 上,如虚线轮廓所示):