Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 仅通过XAML将上下文菜单添加到树视图_C#_Wpf_Treeview_Contextmenu - Fatal编程技术网

C# 仅通过XAML将上下文菜单添加到树视图

C# 仅通过XAML将上下文菜单添加到树视图,c#,wpf,treeview,contextmenu,C#,Wpf,Treeview,Contextmenu,尝试仅使用xaml代码将上下文菜单添加到TreeView 电视节目 第一季 第n季 只有在右键单击季节节点时,关联菜单才会显示 可能吗?我知道如何用代码隐藏来解决这个问题,但我想学习如何使用WPF。我很难确定是否只使用xaml就能解决这个问题 当前xaml: <TreeView Grid.Row="1" Grid.Column="0" ItemsSource="{Binding TvShows}" x:Name="TvSh

尝试仅使用xaml代码将上下文菜单添加到
TreeView

  • 电视节目
    • 第一季
    • 第n季
只有在右键单击季节节点时,关联菜单才会显示

可能吗?我知道如何用代码隐藏来解决这个问题,但我想学习如何使用WPF。我很难确定是否只使用xaml就能解决这个问题

当前xaml:

    <TreeView 
        Grid.Row="1" 
        Grid.Column="0"
        ItemsSource="{Binding TvShows}" x:Name="TvShowsTreeView"
        SelectedItemChanged="TvShowsTreeViewOnSelectedItemChanged">

        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate DataType="tvShows:TvShow" ItemsSource="{Binding Seasons}">
                <TextBlock Text="{Binding Name}" />
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>
    </TreeView>

尝试使用
HierarchycalDataTemplate
ItemTemplate
属性。应该是这样的:

    <HierarchicalDataTemplate DataType="tvShows:TvShow" ItemsSource="{Binding Seasons}">
        <TextBlock Text="{Binding Name}" />
        <HierarchicalDataTemplate.ItemTemplate>
            <DataTemplate DataType="TypeOfSeasonInYourApplication">
                <TextBlock Text="{Binding Name}">
                    <TextBlock.ContextMenu>
                        <ContextMenu>
                            <!-- Place MenuItems here -->
                        </ContextMenu>
                    </TextBlock.ContextMenu>
                </TextBlock>
            </DataTemplate>
        </HierarchicalDataTemplate.ItemTemplate>
    </HierarchicalDataTemplate>


实际上我自己没有测试过,所以请让我知道这是否有效。

你是如何构建这棵树的?通过使用分层数据模板?发布您当前的XAML。@HighCore,添加了XAML。也有一些“尝试”上下文菜单,但它还没有导致太多,所以我暂时把它忽略了,希望从中找到一些有意义的东西:)不,不完全:属性“VisualTree”不支持“DataTemplate”类型的值。嗯,奇怪的是,在我的例子中,它曾经起作用。根据您编写的错误消息,我只能建议您仔细检查是否将
DataTemplate
放在
ItemTemplate
属性中,而不是放在
HierarchicalDataTemplate
本身中(这肯定行不通)。