C# 如果我直接将数据集分配给BindingSource,为什么在gridview工作时使用BindingSource?
我在学习C#中的ADO.NET。 我不确定是否有绑定源的正确概念。与asp.net一样,我们使用C# 如果我直接将数据集分配给BindingSource,为什么在gridview工作时使用BindingSource?,c#,sql,database,ado.net,C#,Sql,Database,Ado.net,我在学习C#中的ADO.NET。 我不确定是否有绑定源的正确概念。与asp.net一样,我们使用 gridview1.DataBind(); 所以我想在windows应用程序的情况下,我必须这样使用 BindingSource bs = new BindingSource(); bs.DataSource= ds.Tables[0]; gridveiw1.DataSource = bs; 这里是数据集 但是如果我像这样使用 gridview1.DataSource = ds.Tables[0
gridview1.DataBind();
所以我想在windows应用程序的情况下,我必须这样使用
BindingSource bs = new BindingSource();
bs.DataSource= ds.Tables[0];
gridveiw1.DataSource = bs;
这里是数据集
但是如果我像这样使用
gridview1.DataSource = ds.Tables[0];
它也在起作用
那么为什么我们应该使用绑定源代码。绑定源允许什么特性而不使用它,或者这里不需要绑定源。
提前感谢。BindingSource是在.NET2.0中开发的,而DataSet/DataTable类是在.NET1.1中最先开发的 从 当然,您可以直接将DataGridView绑定到DataTable并绕过BindingSource,但BindingSource具有某些优势:
- 它公开属性来对列表进行排序、过滤列表等,这在其他方面是一件很痛苦的事情。(即,如果您将DataGridView直接绑定到DataTable,那么要对DataTable进行排序,您需要知道DataTable是一个IListSource,它知道作为DataView的基础列表,并且DataView可以进行排序、筛选等)
- 如果您必须设置主/子视图,那么BindingSource在这方面做得很好