WPF - 树视图中单个项目的上下文菜单?

时间:2015-09-28 09:12:47

标签: c# wpf treeview

我对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项目?

谢谢:/

0 个答案:

没有答案