【问题标题】:Wpf right click menu on datagrid Column数据网格列上的Wpf右键菜单
【发布时间】:2014-06-09 09:02:51
【问题描述】:

我有这个数据网格(见图) 我真的很喜欢在特定列上有一个右键菜单,见红色方块。但它应该只是那个有菜单的单元格。我在网上搜索过,但我只能在那里找到它的标题而不是列。

这是单元格代码:

<DataGridTextColumn Header="{wpfTx:Translate Action}" Binding="{Binding Action}" IsReadOnly="false" Width="*">
                      <DataGridTextColumn.ElementStyle>
                            <Style TargetType="{x:Type TextBlock}">
                                <Setter Property="TextWrapping" Value="Wrap" />
                            </Style>
                        </DataGridTextColumn.ElementStyle>
                        <DataGridTextColumn.EditingElementStyle>
                            <Style TargetType="{x:Type TextBox}">
                                <Setter Property="TextWrapping" Value="Wrap" />
                                <Setter Property="AcceptsReturn" Value="true" />
                            </Style>
                        </DataGridTextColumn.EditingElementStyle>
                    </DataGridTextColumn>

请帮帮我:)

【问题讨论】:

    标签: wpf wpf-controls wpfdatagrid


    【解决方案1】:

    更改样式,以便触发器添加上下文菜单。像这样的:

    <DataGridTextColumn.ElementStyle>
        <Style TargetType="{x:Type TextBlock}">
            <Setter Property="TextWrapping" Value="Wrap" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding Action}" Value="Whatever">
                    <Setter Property="ContextMenu">
                        <Setter.Value>
                            <ContextMenu>
                                <MenuItem Header="Cut" />
                                <MenuItem Header="Copy" />
                            </ContextMenu>
                        </Setter.Value>
                    </Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGridTextColumn.ElementStyle>
    <DataGridTextColumn.EditingElementStyle>
        <Style TargetType="{x:Type TextBox}">
            <Setter Property="TextWrapping" Value="Wrap" />
            <Setter Property="AcceptsReturn" Value="true" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding Action}" Value="Whatever">
                    <Setter Property="ContextMenu">
                        <Setter.Value>
                            <ContextMenu>
                                <MenuItem Header="EditingCut" />
                                <MenuItem Header="EditingCopy" />
                            </ContextMenu>
                        </Setter.Value>
                    </Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGridTextColumn.EditingElementStyle>
    

    【讨论】:

    • 不,他们不是那个意思...问题作者清楚地应该只有那个有菜单的单元格
    • 我的答案的第二部分不包括这个吗?我删除了答案的第一部分。
    • 糟糕,对不起,我完全错过了第二部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多