Winforms DevExpress网格视图查询-数据源属性设置为DataTable,但显示的列数不正确
我有一个数据表,用于绑定到my DevXPress GridView 我的数据表是动态的,有时它可以带来4列,有时甚至20列。问题是,当我第一次用dataTable设置GridView时,比如说,当时有20列,它将正确显示,下次如果我的dataTable只有4列,我的GirdView仍将显示所有20列,其值仅在dataTable当时的4列中 我如何解决这个问题 附件是截图 这与清除某个内存实例/处理某个对象有关?如果是,请帮助了解DevExpress GridView的API 更新 此代码调用set数据源Winforms DevExpress网格视图查询-数据源属性设置为DataTable,但显示的列数不正确,winforms,data-binding,datatable,devexpress,Winforms,Data Binding,Datatable,Devexpress,我有一个数据表,用于绑定到my DevXPress GridView 我的数据表是动态的,有时它可以带来4列,有时甚至20列。问题是,当我第一次用dataTable设置GridView时,比如说,当时有20列,它将正确显示,下次如果我的dataTable只有4列,我的GirdView仍将显示所有20列,其值仅在dataTable当时的4列中 我如何解决这个问题 附件是截图 这与清除某个内存实例/处理某个对象有关?如果是,请帮助了解DevExpress GridView的API 更新 此代码调用s
bindingSource1.DataSource = dtBindToGridView; // MyDataTable
gcAnalysisTaskPermission.DataSource = bindingSource1; //My GridView
bindingSource1.ResetBindings(true); // Reset the BindingSource
谢谢
Mangesh如果您使用的是
BindingSource
,请尝试在ResetBinding()中设置
更新
根据需要,您可以尝试调用PopulateColumns
public void SetData()
{
//setting the datasource of your binding source
myBindingSource.DataSource = GetMyDataTable();
gridView1.PopulateColumns();
}
首先,尝试按如下方式重置数据源:
grid.DataSource = null;
grid.DataSource = GetData();
如果您有绑定资源,这将不起作用
调用。bindingSource1.DataSource=dtBindToGridView;//MyDataTable gcAnalysisTaskPermission.DataSource=bindingSource1//My GridView bindingSource1.ResetBindings(true);//重置BindingSource设置数据源后,可以隐藏所有空白列。但这是一个丑陋的解决方案…@JensKloster谢谢!!您更新的答案解决了我的问题:)
grid.DataSource = null;
grid.DataSource = GetData();