У меня есть ComboBox, связанный с DataTable. Я пытаюсь добавить дополнительный ComboBoxItem в верхней части списка, где я могу поставить ссылку для настройки списка. В настоящее время я просто вставляю фиктивную строку в начало моего DataTable, а затем использую DataTrigger в ComboBox, чтобы он выглядел правильно. Тем не менее, я не совсем получаю правильный результат.
Я пробовал два метода. Во-первых, мой DataTrigger заменяет фиктивный элемент на ControlTemplate, который содержит TextBlock.
<ComboBox IsEditable="True" Name="comboWell" ItemsSource="{Binding}" DisplayMemberPath="wellId">
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding wellId}" Value="(settings)">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBoxItem">
<TextBlock Text="Customize..." />
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
Результат выглядит правильно, но на этом элементе нет подсветки при наведении курсора. Остальная часть списка работает нормально, но этот элемент вообще не реагирует, когда я наводю на него курсор мыши. Я попытался добавить дополнительные триггеры и стили, чтобы применить эффект наведения мыши, но я не получил изменений.
Второй метод, который я попробовал, состоял в том, чтобы просто изменить внешний вид элемента, а не полностью заменить его ControlTemplate.
<ComboBox IsEditable="True" Name="comboWell" ItemsSource="{Binding}" DisplayMemberPath="wellId">
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding wellId}" Value="(settings)">
<Setter Property="Content" Value="Customize..." />
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
Этот функционирует как обычный элемент списка, при наведении курсора работает нормально. Тем не менее, элемент пуст. Ни оригинального текста, ни текста, который я пытаюсь установить в DataTrigger, там нет. Нет ошибок, просто пустой элемент списка.
Есть ли лучший способ сделать это?