gpt4 book ai didi

wpf - 在数据网格中单击单元格时查找数据网格列名称

转载 作者:行者123 更新时间:2023-12-04 17:58:22 25 4
gpt4 key购买 nike

我想在单击单元格时找到数据网格列标题.. 我使用了以下代码

private void grid1_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
DependencyObject dep = (DependencyObject)e.OriginalSource;
while ((dep != null) &&
!(dep is DataGridColumnHeader))
{
dep = VisualTreeHelper.GetParent(dep);
}

if (dep == null)
return;

if (dep is DataGridColumnHeader)
{
DataGridColumnHeader columnHeader = dep as DataGridColumnHeader;

if (columnHeader.ToString() == "Adv Comments")
{
MessageBox.Show(columnHeader.Column.Header.ToString());

}
}
if (dep is DataGridCell)
{
DataGridCell cell = dep as DataGridCell;

}
}

但是列标题不是数据网格单元的直接父级,因此无法找到它。还有其他出路吗??

最佳答案

单击的原始源并没有真正连接到所谓的项目容器(请参阅 DataGrid.ItemContainerGenerator),因此尝试自己处理层次结构,尽管一个好主意不会让您走得更远。

对于一个非常愚蠢的简单解决方案,您可以使用它的知识 被点击的单元格,从而使用被点击的单元格来检索列,如下所示:

private void DataGrid_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
// First check so that we´ve only got one clicked cell
if(myGrid.SelectedCells.Count != 1)
return;

// Then fetch the column header
string selectedColumnHeader = (string)myGrid.SelectedCells[0].Column.Header;
}

这可能不是最漂亮的解决方案,但简单才是王道。

希望能帮助到你!

关于wpf - 在数据网格中单击单元格时查找数据网格列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3962336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com