Winforms DevExpress网格视图查询-数据源属性设置为DataTable,但显示的列数不正确

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

我有一个数据表,用于绑定到my DevXPress GridView

我的数据表是动态的,有时它可以带来4列,有时甚至20列。问题是,当我第一次用dataTable设置GridView时,比如说,当时有20列,它将正确显示,下次如果我的dataTable只有4列,我的GirdView仍将显示所有20列,其值仅在dataTable当时的4列中

我如何解决这个问题

附件是截图

这与清除某个内存实例/处理某个对象有关?如果是,请帮助了解DevExpress GridView的API

更新

此代码调用set数据源

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();