首页 > 解决方案 > 如何在 Gridviewcolumn.celltemplate 中创建包含菜单项的上下文菜单?无法使示例代码工作

问题描述

我在 WPF 应用程序的数据网格视图的不同列中有两个按钮。该数据网格视图将从数据库加载。同时,每行都会有一个 Location 下拉菜单项。我有五列,图像显示了我的 wpf 应用程序最后两列中的内容。

正如我们在图像中看到的,下拉箭头出现在Location中。但是当我按下它时,我看不到子菜单项,如下面的 xaml 代码所示。

<local:CustomListView.View>
    <GridView AllowsColumnReorder="False">
        <GridViewColumn Header="Car" Width="Auto" 
                        DisplayMemberBinding="{Binding Car}" />
        <GridViewColumn Header="House" Width="Auto" 
                        DisplayMemberBinding="{Binding House}" />
        <GridViewColumn Header="" Width="60">
            <GridViewColumn.CellTemplate>
                <DataTemplate>
                    <MenuItem Header="Location" ToolTip="Click to see info">
                        <MenuItem Header="Start" Click="info_Click" 
                                  ToolTip="Shows the start route"/>
                        <MenuItem Header="Final" Click="info_Click" 
                                  ToolTip="Show the final route"/>
                    </MenuItem>
                </DataTemplate>
            </GridViewColumn.CellTemplate>
        </GridViewColumn> 
    </GridView>
</local:CustomListView.View>

出于某种原因,我看不到子项StartFinal。我对此很陌生,将不胜感激。

谢谢大家。

我无法理解如何添加

<local:CustomListView.ContextMenu>
    <ContextMenu>    
    //I want to be able to place the MenuItem in here
    </ContextMenu>
</local:CustomListView.ContextMenu>

我想在该GridViewColumn.CellTemplate部分添加类似的内容。

有人可以指导我如何做到这一点。我花了几个小时但没有成功。

标签: c#wpfdatagridwpf-controls

解决方案


To resolve the issue, nest it in a Menu tag.

             <Menu>
              <MenuItem Header="Location" ToolTip="Click to see info">
                    <MenuItem Header="Start" Click="info_Click" 
                              ToolTip="Shows the start route"/>
                    <MenuItem Header="Final" Click="info_Click" 
                              ToolTip="Show the final route"/>
                </MenuItem>
              <Menu>

推荐阅读