У меня возникла проблема с назначением обработчика события контекстного меню, связанного как ItemContainerStyle для списка. При щелчке правой кнопкой мыши и вызове элемента списка в приложении я получаю контекстное меню, в котором отображается имя заголовка, а также другой вложенный элемент, называемый system.window.style.Contextmenu menuitem не используется правильно
Мой XAML код выглядит следующим образом:
<ListBox HorizontalAlignment="Left" Margin="6,90,0,0" Name="listbox1" Width="189" FontSize="14" Height="416" VerticalAlignment="Top">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Delayed Kick" >
<Style TargetType="MenuItem">
<EventSetter Event="Click" Handler="DelayedKick_Click"/>
</Style>
</MenuItem>
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
Что делать, если я хочу указать различные обработчики событий для разных контекстных меню? – paradox
Теперь вы облагаете налогом свои знания :(Думаю, вам нужно будет иметь несколько стилей контейнера элементов в качестве ресурсов. Каждый из них будет иметь различный явный стиль MenuItem (вместо неявного, как указано выше), а затем вам нужно будет использовать ListBox.ItemContainerStyleSelector, чтобы выбрать правильный стиль для каждого элемента списка. – Phil