获取以编程方式添加到DataGridView中以显示的行

本文关键字:显示 DataGridView 编程 方式 添加 获取 | 更新日期: 2023-09-27 18:04:52

我知道这是一个老问题…我有DataGridView直接绑定到自定义对象的通用列表。这是用户单击"添加新行"按钮时发生的事件:

private void btnAddStation_Click(object sender, EventArgs e)
{
    if (dgvStationConfiguration.DataSource != null && ((List<StationConfiguration>)dgvStationConfiguration.DataSource).Count > 0)
    {
        var stations = (List<StationConfiguration>)dgvStationConfiguration.DataSource;
        stations.Add(new StationConfiguration(string.Empty, string.Empty, string.Empty, stations.Last().FolderName));
        IsGridDirty = true;
    }
}

但是新行没有显示。在调试器中,我看到它已被添加到数据源中,但我不能强制显示它。

我已经尝试了将数据源设置为null并再次返回列表的旧方法,但它混淆了我的datagridview的列的顺序。

我也尝试过刷新和结束,没有成功。

获取以编程方式添加到DataGridView中以显示的行

List<T>集合不支持IBindingList接口,因此为了让您的DataGridView控件被通知集合中的项已被删除或添加,请尝试使用BindingList<T>集合代替。