调用BindingSource.RemoveCurrent时如何更新基础列表
本文关键字:更新 列表 RemoveCurrent BindingSource 何更新 调用 | 更新日期: 2023-09-27 18:29:00
我有以下简单类;
public class MyObject
{
public int Id {get;set;}
public string Name {get;set;}
}
List<MyObject> oList = new List<MyObject>();
我的列表中填充了一些项目。然后,我用以下列表填充BindingSource:;
MyBindingSource.DataSource = oList; //contains some items in a list
我的BindingSource链接到DataGridView(在本例中这并不重要),但根据DataGridView中所选的行,我会为我的数据网格视图单击以下方法按钮;
private void MyDataGrid_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == btnRemove.Index)
{
MyBindingSource.RemoveCurrent();
}
}
呼叫
MyBindingSource.RemoveCurrent()
从DataGridView中删除项,但如何从oList的基础列表中删除项。
我认为分配MyBindingSource.DataSource=oList意味着MySBindingSource.DDataSource中显示的列表实际上指向oList?
List<T>
不够聪明,无法知道事情已经发生了变化,所以请尝试使用System.ComponentModel中的BindingList<T>
:
BindingList<MyObject> oList = new BindingList<MyObject>();