У меня есть настройка TreeView
, так что каждый TreeViewItem
имеет контекстное меню, вызываемое правой кнопкой мыши и применяемое как Style
. Что-то вроде:
<Grid.Resources>
<ContextMenu x:Key="contextMenu">
<MenuItem Header="Save" IsEnabled="{Binding Path=Saveable}"/>
<MenuItem Header="Copy" IsEnabled="{Binding Path=Copyable}"/>
<MenuItem Header="Remove" IsEnabled="{Binding Path=Removeable}"/>
</ContextMenu>
<Style TargetType="TreeViewItem">
<Setter Property="ContextMenu" Value="{StaticResource contextMenu}" />
</Style>
</Grid.Resources>
Saveable, Copyable и Removeable - свойства, которые исходят от объекта, который используется как TreeViewItem
.
Я ищу, когда пользователь нажимает на MenuItem
, он щелкает на соответствующем методе выбранного объекта. Поэтому нажатие на «Сохранить» MenuItem
вызовет object.Save()
, «Копировать» вызовет object.Copy()
и т. Д. Но я не уверен, как будет выглядеть синтаксис, или действительно ли идея приемлема с точки зрения типичного Стиль WPF. Я знаю, что могу просто создать новый обработчик событий в охватывающем окне, но я бы предпочел, чтобы сам выбранный элемент обрабатывал событие.
Мысли
Спасибо!