我在UI上用列构建了一个datagridview,
我添加了一个按钮,尝试将数据源转换为数据表。
datagridview绑定到bindingsource,绑定到新数据表。
在ui上添加值并单击按钮后,我尝试从数据源获取数据表,但它保持为null。
BindingSource b = new BindingSource();
b.DataSource = new DataTable();
grdView.DataSource = b;
public void OnButtonClick()
{
BindingSource b = (BindingSource)grdView.DataSource;
DataTable dt = b.DataSource;
// dt keeps be null (but count is the count of the added rows)
}
答案 0 :(得分:0)
来自MSDN
DataSource属性可以设置为多个数据源, 包括类型,对象和类型列表。结果数据 来源将作为列表公开
数据源是List,而不是DataTable。这可能是为什么它有一个计数,但dt
最终为空。
使用BindingSource的原因是,您无需通过UI组件(网格)即可访问数据。如果你想要数据,从BindingSource获取数据,不要从网格中获取数据。