TreeViewItem의 문맥 메뉴는 treeViewItem의 메소드를 호출합니까?
-
21-08-2019 - |
문제
나는있다 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>
저장 가능하고 복사 가능하며 제거 가능합니다. TreeViewItem
.
내가 찾고있는 것은 사용자가 MenuItem
, 선택한 객체의 적절한 방법을 클릭합니다. 그래서 "저장"을 클릭하십시오 MenuItem
전화 할 것입니다 object.Save()
, "복사"호출 object.Copy()
, 등. 나는 Encorporing Window에서 새 이벤트 핸들러를 만들 수 있다는 것을 알고 있지만 선택한 항목 자체를 선호하여 이벤트를 처리합니다.
생각?
감사!
해결책
불행히도, 나는 이것을하는 자동화 된 방법이 있다고 생각하지 않습니다. 가장 가까운 옵션은 a를 설정하는 것입니다 RoutedUICommand
의 각 항목에 대해 ContextMenu
, 그런 다음 a CommandBinding
수업 시간에 각각. 당신이 그것들이 당신에게 가기를 원한다면 TreeViewItem
, 아마도 서브 클래스가 필요할 것입니다 TreeViewItem
그리고 설정 CommandBindings
거기.
내가 생각했던 한 가지 옵션은 EventSetter
~을 위한 MenuItem.Click
~로 TreeViewItem
스타일. 그러나 그것은 작동하지 않았을 것입니다 - 아마도 ContextMenu
다른 시각적 트리에 있습니다 TreeViewItems
.
제휴하지 않습니다 StackOverflow