You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BufDataGridView已导入行后无法逐行填充Test数据的技术求助

问题分析与解决

你当前代码的核心问题很明确:

  1. 每次循环都新建Test对象,但完全没把这个对象和已绑定的SerialNo集合关联——SerialNo里已经有40个对应导入序列号的Test实例了,根本不需要重新创建,直接修改集合里的现有对象就行。
  2. 你用staveEATData2.Rows[^2].Cells[0]设置当前单元格,[^2]是取倒数第二行,等于每次都选同一行,既没正确移动光标,也不是数据绑定模式下修改数据的正确方式(绑定模式下,改绑定集合才会同步到UI)。

修正后的代码

直接操作绑定的BindingList<Test>集合SerialNo,DataGridView和这个集合绑定后,修改集合内的元素会自动同步到界面,不需要手动操作单元格:

// 处理前20行(对应索引0到19)
for (int i = 0; i < 20; i++)
{
    // 直接取SerialNo中已有的Test对象,不用新建
    Test targetTest = SerialNo[i];
    // 填入实际测试数据,这里示例用0占位
    targetTest.Test1 = 0;
    targetTest.Test2 = 0;
}

// 弹出设置对话框,等待用户调整配置
using (var settingDialog = new TestForm())
{
    settingDialog.ShowDialog();
}

// 处理后20行(对应索引20到39)
for (int i = 20; i < 40; i++)
{
    Test targetTest = SerialNo[i];
    targetTest.Test1 = 0;
    targetTest.Test2 = 0;
}

额外注意事项

如果修改集合元素后界面没更新,大概率是Test类没实现INotifyPropertyChanged接口,需要给Test类加上这个接口,确保属性变更能通知UI刷新:

public class Test : INotifyPropertyChanged
{
    private string _serialNo;
    private string _location;
    private int _test1;
    private int _test2;

    public string SerialNo
    {
        get => _serialNo;
        set
        {
            _serialNo = value;
            OnPropertyChanged(nameof(SerialNo));
        }
    }

    public string Location
    {
        get => _location;
        set
        {
            _location = value;
            OnPropertyChanged(nameof(Location));
        }
    }

    public int Test1
    {
        get => _test1;
        set
        {
            _test1 = value;
            OnPropertyChanged(nameof(Test1));
        }
    }

    public int Test2
    {
        get => _test2;
        set
        {
            _test2 = value;
            OnPropertyChanged(nameof(Test2));
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

内容的提问来源于stack exchange,提问作者Robbie Schertz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 04:05:10