首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF -在ColumnHeader的displayIndex大于值时触发

WPF -在ColumnHeader的displayIndex大于值时触发
EN

Stack Overflow用户
提问于 2017-11-17 06:58:26
回答 1查看 105关注 0票数 0

我正在寻找一种方法,以使触发器的数据,显示上下文菜单时,点击标题,其中有DisplayIndex大于2。

这就是我现在拥有的:

代码语言:javascript
复制
                <Style TargetType="{x:Type DataGridColumnHeader}">

                    <Style.Triggers>
                        <Trigger Property="DisplayIndex"  Value="2">
                            <Setter Property="ContextMenu"
                                 Value="{StaticResource ColumnHeaderContextMenu1}" />
                        </Trigger>
                    </Style.Triggers>
                </Style>

有办法做到这一点吗?我需要的原因是用户会动态地添加列,所以他需要(有时)删除它们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-17 09:40:06

用另一种方式处理这件事。该代码可能有用:

xaml:

代码语言:javascript
复制
<DataGrid.ColumnHeaderStyle>
                    <Style TargetType="DataGridColumnHeader">
                        <EventSetter Event="MouseRightButtonDown"  Handler="DataGridColumnHeader_MouseRightButtonDown" />
                    </Style>
                </DataGrid.ColumnHeaderStyle>

代码背后:

代码语言:javascript
复制
private void DataGridColumnHeader_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (((DataGridColumnHeader)sender).DisplayIndex < 2)
            {
                return;
            }

            var x = DataContext as BrygadzistaViewModel;
            x.ColumnHeaderToDelete = ((DataGridColumnHeader)sender).Content.ToString();

            ContextMenu cm = new ContextMenu();
            MenuItem mi = new MenuItem();
            mi.Header = "Usuń";
            mi.Command = x.DeleteDay;
            cm.Items.Add(mi);

            cm.IsOpen = true;
        }

想知道是否有更好的方法来做到这一点;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47344974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档