0
コンテキストメニューのコマンドをクリックすると、ツリービュー内の項目に対してコマンドを実行できるようになります。アイテムが特定のタイプ(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のプロパティです。 SetterのAncestorTypeをUserControl(上端)に設定して解決しました。ありがとう! – n0win0u
偉大な@ n0win0u、私はあなたの問題を解決してうれしい –