문제

나는있다 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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top