在编写一个小工具的时候需要将一个自定义的集合绑定到DataGridView。DataGridView是.net 2.0中新的一个网格控件。DataGridView的功能非常的强大,我在使用中确遇到一个小小的问题。
我自定的集合如下:
CustomClass本身是有两个String类型的属性(Propertie)。我在WinForm的构造函数里面:
虽然还没有数据,但是在DataGridView里面已经显出2个Title,即CustomClass的那2个属性,然后却遇到的个问题:我通过一个button Click事件向ccl里添加了东西,却没有找到DataGrid里面的DataBind()事件,而且dataGridView并没有自动的更新。DataGridView的Refresh()似乎和更新数据也没有关系。
在网上查找资料,找到BindingSource这个类。只需要,先将cll Bind到BindingSource上,再将BindingSource作为数据源Bind到DataGridView。向cll添加数据以后调用BindingSource的ResetBindings()就可以更新DataGridView:
先声明一个BindingSource:
再调用:
在添加数据的方法的最后调用:
Key Word: DataGridView BindingSource 数据同步 更新
我自定的集合如下:
public class CustomClassCollection : System.Collections.Generic.List<CustomClass>
{
}
CustomClass本身是有两个String类型的属性(Propertie)。我在WinForm的构造函数里面:
CustomClassCollection ccl = new CustomClassCollection();
dataGridView.DataSource = ccl;
虽然还没有数据,但是在DataGridView里面已经显出2个Title,即CustomClass的那2个属性,然后却遇到的个问题:我通过一个button Click事件向ccl里添加了东西,却没有找到DataGrid里面的DataBind()事件,而且dataGridView并没有自动的更新。DataGridView的Refresh()似乎和更新数据也没有关系。
在网上查找资料,找到BindingSource这个类。只需要,先将cll Bind到BindingSource上,再将BindingSource作为数据源Bind到DataGridView。向cll添加数据以后调用BindingSource的ResetBindings()就可以更新DataGridView:
先声明一个BindingSource:
BindingSource bs = new BindingSource();
再调用:
bs.DataSource = ccl;
dataGridView.DataSource = bs;
在添加数据的方法的最后调用:
bs.ResetBindings(false);
Key Word: DataGridView BindingSource 数据同步 更新
Comments
confusing me for 2 days for this problem, but solove by your article.
greets.