按对象查找数据网格行

本文关键字:网格 数据网 数据 对象 查找 | 更新日期: 2023-09-27 18:13:28

我有一个对象:

public class Part
{
    public bool Selected { get; set; }
    ......
    public bool isExist;
}

我有一个零件列表和数据绑定到一个数据网格(我使用的是超网格):

List<Part> parts = generatePartsList();

ultraGrid1.DataSource = parts;

我也有一个按钮打印所有选定的部分。

现在,我想在每次打印零件时突出显示相应的行。

    private void btnPrint_Click(object sender, EventArgs e)
    {
        if (parts == null)
        {
            return;
        }
        ultraGrid1.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.ExitEditMode);
        foreach (Part part in parts)
        {
            if (part.Selected)
            {
                PrintPart(part);
                HightlightPrintedRow(part, ultraGrid1);
            }

如何实现这个函数?

HightlightPrintedRow(Part part, UltraGrid ultraGrid1)

请注意,列表中的部分可能在所有字段中具有完全相同的值,因此我无法按值查找行

按对象查找数据网格行

我自己弄明白了。

    HightlightPrintedRow(Part part, UltraGrid ultraGrid1)
    {
        foreach (var row in ultraGrid1.Rows)
        {
            if ((Part)row.ListObject == part)
            {
                row.Appearance.BackColor = Color.LightGreen;
                break;
            }
        }
    }