У меня есть ListBox с ListBoxItem, используя DataTemplate, который использует Expander в качестве своего контейнера. Проблема в том, что Expander кажется, что есть Click event (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, в результате получим SelectedItem:

Нажатие на Expander приводит к обновлению нет SelectedItem (щелчок на Expander 1 был очевиден пунктиром):
