0
컨텍스트 메뉴에서 명령을 클릭하여 TreeView 내부의 항목에 명령을 실행할 수 있기를 원합니다. 항목이 특정 유형 (xxTreeViewItem이 2 개의 하위 유형이있는 인터페이스) 인 경우에만 더욱 구체적입니다.항목을 TreeView 내부에있는 컨텍스트 메뉴에 명령을 바인딩하는 방법?
<Grid Name="Root" commonExtensions:EnterKeyUpdateExtension.IsEnabled="True">
<StackPanel Orientation="Vertical" Grid.Row="0">
<Button Content="Center on" Command="{Binding Path=CenterOnCommand}" Margin="5,10,5,0"/>
</StackPanel>
<Grid>
<TreeView Grid.Row="0" Name="xxTreeView" DataContext="{Binding Path=xxViewModel}" ItemsSource="{Binding Path=Items}">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Center On" Command="{Binding CenterOnCommand}"/>
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Items}" DataType="{x:Type localViewItems:xxTreeViewItem}">
<TextBlock Text="{Binding Name}" VerticalAlignment="Center"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
상단의 버튼에있는 명령은 작동하지만 상황에 맞는 메뉴에서는 아래에서 작동하지 않습니다. 나는 여러 바인딩을 시도하고 조상을 발견했지만 그 중 아무 것도 작동하지 않습니다. XAML만의 솔루션이 있습니까?
을 도울 수 있기를 바랍니다, 명령 CenterOnCommand은 xxEditorViewModel입니다. TreeView에서 사용되는 xxViewModel은 xxEditorViewModel의 Property입니다. Setter의 AncestorType을 UserControl (맨 위)으로 설정하여 해결했습니다. 감사! – n0win0u
Great @ n0win0u, 문제가 해결되어 기쁘게 생각합니다. –