gpt4 book ai didi

wpf - 如何使用 DataGridCell 对象获取行索引

转载 作者:行者123 更新时间:2023-12-02 05:17:14 24 4
gpt4 key购买 nike

我正在尝试检索当前 DataGridCell 对象的行索引。如果它是对角线单元格,我需要它来更改单元格的背景颜色。

我尝试了如下所示的两个选项,这两个选项都为我提供了行索引。但是当我尝试移动滚动条(当网格很大时)并返回到数据网格的顶部时,这两个选项的行索引每次都会为相同的行提供不同的行索引。本质上,每次上下滚动时我都会得到不同颜色的网格。

class CellFormatConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
DataGridCell dgc = (DataGridCell)value;
DataRowView rowView = (DataRowView)dgc.DataContext;

//Option 1
DependencyObject row = value as DependencyObject;

while (row != null && !(row is DataGridRow))
{
row = VisualTreeHelper.GetParent(row);
}
int rowIndex = 0;
if(row!=null)
{
DataGridRow gridrow = (DataGridRow)row;
rowIndex = gridrow.GetIndex();
}

//option 2
//int rowIndex = rowView.Row.Table.Rows.IndexOf(rowView.Row);

if (dgc.Column.DisplayIndex == rowIndex)
{
return Brushes.Red;
}
return Brushes.White;
}
}

更新:在解决这个问题之后,我认为列的 displayIndex 不断变化导致了这个问题。后来,我删除了基于 displayIndex 的实现,现在我使用内容值来决定背景颜色。现在,我的问题是每次我向下滚动和向上滚动时,网格看起来颜色都不一样!!

最佳答案

Dim iCol = maingrid.CurrentCell.ColumnIndex
Dim iRow = maingrid.CurrentCell.RowIndex

iRow 可以获取 Currentcell Row 索引。使用它!!

如果你想改变当前单元格...使用下面

maingrid.CurrentCell = maingrid(icol,iRow)

关于wpf - 如何使用 DataGridCell 对象获取行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30679616/

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