Я создаю пользовательский элемент управления, который должен автоматически заполнять вещи.Для этого создается всплывающее окно, где пользователь может выбрать нужный элемент.
Это все уже отлично работает, с крошечной проблемой: я хочу, чтобы эти элементы (представленные внутри ListView
) такжеавтозаполнение с помощью двойного щелчка.
Это, однако, представляет проблему для меня, так как я не могу добавить EventSetter в стиль для соответствующего ListViewItem
.
Я хочу избежать необходимостидобавьте свойство зависимости с помощью некоторого ICommand для передачи всего этого через присоединенные свойства.
XAML-код (разбито):
<Style x:Key="{x:Type local:AutoCompleteTextBox}" TargetType="{x:Type local:AutoCompleteTextBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:AutoCompleteTextBox}">
<!-- ... -->
<Popup x:Name="PART_Popup" PlacementTarget="{Binding ...}" IsOpen="{Binding ...}">
<ListView ItemTemplate="{Binding ...}" ItemsSource="{Binding ...}">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<!-- 'ResourceDictionary' root element requires a x:Class attribute to support event handlers in the XAML file. Either remove the event handler for the MouseDoubleClick event, or add a x:Class attribute to the root element. -->
<EventSetter Event="MouseDoubleClick" Handler="ListViewItem_MouseDoubleClick"/>
</Style>
</ListView.ItemContainerStyle>
</ListView>
</Popup>
<!-- ... -->
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>