我对WPF不是很熟练(如果有的话),我遇到了以下问题。 我有一个treeview控件(XAMtreeView),我绑定了一个contextmenuitem。现在,我希望contextmenu仅显示5个树节点项之一(例如,右键单击第4个项目应该弹出它,但是右键单击不应该对其他项目执行任何操作)。我尝试使用数据绑定,但有些东西告诉我这是错误的方式 - 尽管如此,这是我到目前为止:
<DataTemplate x:Key="CategoryTreeNodeTemplate">
<TextBlock Tag="{Binding DataContext, ElementName=ScenarioOptions}"
Text="{Binding Data.Name}" Style="{StaticResource ScreenNodeTitleStyle}" VerticalAlignment="Center">
<TextBlock.ContextMenu>
<ContextMenu Visibility="Hidden" cal:Action.TargetWithoutContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}">
<ContextMenu.Style>
<Style TargetType="ContextMenu">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Text, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type TextBlock}}}" Value="CTS Charts">
<Setter Property="Visibility" Value="Visible"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ContextMenu.Style>
<MenuItem Header="{StaticResource ExternalChartOpenFile}" cal:Message.Attach="OpenExternalFile()">
</MenuItem>
</ContextMenu>
</TextBlock.ContextMenu>
</TextBlock>
</DataTemplate>
正如你所看到的,我正在尝试使用可见性标记 - 并且在它的同时失败了:)。如何将上下文菜单应用于单个treenode项目?
谢谢:/