首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPFtoolkit及其DatagridColumnHeader

WPFtoolkit及其DatagridColumnHeader
EN

Stack Overflow用户
提问于 2009-04-06 21:02:29
回答 1查看 756关注 0票数 0

我需要在我的数据网格中有不同的上下文菜单-一个用于它的标题,一个用于网格的行。所以我正在处理MouseClick事件,然后我需要评估鼠标光标的底层对象是否是Datagrid的头。你能给我解释一下怎么做吗?我不能理解的是,DataGrid和DataGridColumn的对象层次结构都不包含DataGridColumnHeader对象或对它的任何引用。但在虚拟树中,如果我获得位于标题中的包含列标题文本的文本块,然后获取它的父容器,我将获得DatagridColumnHeader对象。

任何帮助都是非常感谢的。提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2009-06-19 10:04:38

代码语言:javascript
运行
复制
Private Sub DGrid_MouseLeftButtonDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs)
    Dim dep As DependencyObject = DirectCast(e.OriginalSource, DependencyObject)

    ' iteratively traverse the visual tree 
    While (dep IsNot Nothing) AndAlso Not (TypeOf dep Is DataGridRow OrElse TypeOf dep Is Primitives.DataGridColumnHeader OrElse TypeOf dep Is DataGrid)
        dep = VisualTreeHelper.GetParent(dep)
    End While

    If dep Is Nothing Then
        Exit Sub
    End If

    If TypeOf dep Is Primitives.DataGridColumnHeader Then
        Dim CurrentHeader As Primitives.DataGridColumnHeader = TryCast(dep, Primitives.DataGridColumnHeader)
        If Not CurrentHeader Is Nothing Then
            CurrentHeader.ContextMenu.Items.Add("Option")
        End If
    ElseIf TypeOf dep Is DataGridRow Then
        'Something else
    End If
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/723225

复制
相关文章

相似问题

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