У меня есть ListBox
, объявленный следующим образом:
<ListBox ItemsSource="{Binding Contracts}" SelectedItem="{Binding SelectedContract}">
<ListBox.ItemTemplate>
<DataTemplate>
<ListBoxItem Content="{Binding Name}">
<ListBoxItem.ToolTip>
<Grid>
[code omitted for reasons of clarity]
</Grid>
</ListBoxItem.ToolTip>
</ListBoxItem>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Я ожидал нормального поведения выбора, так как я играю с ToolTip
элемента, а не со структурой его содержимого. Однако щелчок по имени элемента не фокусирует/выбирает этот элемент. Только щелкнув это крошечное пространство между каждым элементом (самый простой способ - это пространство между именем элемента и границей ListBox
), элемент становится сфокусированным/выбранным.
Конечно, я погуглил и подумал, что нашел виновника (событие не всплывает). Но любое решение, представленное здесь, на SO или где-либо еще, например. грамм. добавление такого кода:
<ListBoxItem.Style>
<Style TargetType="ListBoxItem">
<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="IsSelected" Value="True" />
</Trigger>
</Style.Triggers>
</Style>
</ListBoxItem.Style>
оказалось не решением проблемы. Итак, я предполагаю, что делаю что-то не так, и я просто слишком слеп, чтобы это увидеть. И хотя могут быть решения с использованием кода программной части, я предпочитаю придерживаться чистого и чистого XAML.
Пожалуйста, помогите мне понять мою ошибку и решить ее.