动态创建的 DevExpress DataGridView 在设置 DataSource 后不包含任何数据
Dynamically created DevExpress DataGridView contains no data after setting DataSource
我已经使用设计器创建了 GridControl 和 GridView,并设置了 DataSource,一切正常。但是,当我在代码中创建一个新的 GridControl 和一个分配给该 GridControl 的新 GridView 并正确设置 DataSource 属性 时,GridView 没有数据并且 RowCount returns 0。有什么想法吗?
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
gridControl1.DataSource = StraddleDataHandler.Data;
GridControl g1 = new GridControl();
g1.DataSource = StraddleDataHandler.Data;
GridView v1 = new GridView(gridControl1);
Console.WriteLine(v1.RowCount);
}
}
当我在设计器中手动创建的网格控件中设置 DataSource 属性 时一切正常,有什么想法吗?
gridview 没有与您的代码一起显示——无论默认(主)网格视图仍然是什么,即使您已经创建了第二个视图。
因此,DevExpress 明智地(在我看来)不会渲染网格视图,因为它不显示。
如果您将视图设为主视图,我想您会看到行出现。
GridView v1 = new GridView(gridControl1);
int before = v1.RowCount; // 0, per your example
gridControl1.MainView = v1;
int after = v1.RowCount; // now should have the correct rowcount
只是好奇,但你的意思是改为这样做吗?
GridView v1 = new GridView(g1); // instead of gridControl1?
您需要为 GridControl 设置 BindingContext 才能生成。
g1.BindingContext = this.BindingContext;
我已经使用设计器创建了 GridControl 和 GridView,并设置了 DataSource,一切正常。但是,当我在代码中创建一个新的 GridControl 和一个分配给该 GridControl 的新 GridView 并正确设置 DataSource 属性 时,GridView 没有数据并且 RowCount returns 0。有什么想法吗?
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
gridControl1.DataSource = StraddleDataHandler.Data;
GridControl g1 = new GridControl();
g1.DataSource = StraddleDataHandler.Data;
GridView v1 = new GridView(gridControl1);
Console.WriteLine(v1.RowCount);
}
}
当我在设计器中手动创建的网格控件中设置 DataSource 属性 时一切正常,有什么想法吗?
gridview 没有与您的代码一起显示——无论默认(主)网格视图仍然是什么,即使您已经创建了第二个视图。
因此,DevExpress 明智地(在我看来)不会渲染网格视图,因为它不显示。
如果您将视图设为主视图,我想您会看到行出现。
GridView v1 = new GridView(gridControl1);
int before = v1.RowCount; // 0, per your example
gridControl1.MainView = v1;
int after = v1.RowCount; // now should have the correct rowcount
只是好奇,但你的意思是改为这样做吗?
GridView v1 = new GridView(g1); // instead of gridControl1?
您需要为 GridControl 设置 BindingContext 才能生成。
g1.BindingContext = this.BindingContext;