Я дал моему WPF TreeView контекстное меню:
<TreeView ContextMenuOpening="TreeView_ContextMenuOpening">
<TreeView.ContextMenu>
<ContextMenu>
<MenuItem Name="NewInputMenuItem" Header="Add" Click="AddInputMenuItem_Click" />
<MenuItem Name="RemoveInputMenuItem" Header="Remove" Click="RemoveInputMenuItem_Click" />
</ContextMenu>
</TreeView.ContextMenu>
<!-- etc... -->
</TreeView>
Я определил контекстное меню для TreeView
, а не TreeViewItem
, поскольку я хочу, чтобы одно и то же контекстное меню отображалось независимо от того, выбран элемент или нет, однако я хочу, чтобы пункт меню «Удалить» быть включенным, только если пользователь щелкнул правой кнопкой мыши на элементе, а не только на пустом месте в меню.
Способ, которым я сейчас занимаюсь, заключается в использовании свойства выбранного элемента TreeView
(в обработчике события TreeView_ContextMenuOpening
), однако проблема заключается в том, что щелчок правой кнопкой мыши по элементу представления дерева открывает контекстное меню. для этого вида дерева без изменения выбранного состояния элемента вида дерева.
Кроме того, я не могу не думать, что все вышеперечисленное очень не похоже на WPF, поэтому:
- Как сделать так, чтобы, когда пользователь щелкнул правой кнопкой мыши элемент дерева, этот элемент был выбран.
- И есть ли лучший способ достижения вышеуказанного?