我有一个gridControl,它的数据源是一个列表。列表中的每一项都由三个字段组成。我在gridControl中有3列。当我以编程方式将值插入到网格视图中时,它不会出现。这是我的代码。
public Company_Selection()
{
InitializeComponent();
companies = new List<DataLibrary.Companies>();
gridControl1.DataSource = companies;
}
internal void load_all_companies(List<DataLibrary.Companies> other)
{
for (int i = 0; i < other.Count; i++)
{
companies.Add(other[i]);
gridView1.SetRowCellValue( i, "Id", other[i].id);
gridView1.SetRowCellValue( i, "Company", other[i].name);
gridView1.SetRowCellValue(i, "Description", other[i].description);
gridView1.RefreshData();
gridControl1.RefreshDataSource();
}
}你知道哪里出问题了吗?
发布于 2012-02-28 22:31:30
问题是你不应该直接使用细胞。您的“公司”列表应该包含在BindingList中。所有的编程更改都是在对象级别进行的,而不是在网格级别。因此,设置数据源变成了
gridControl1.DataSource = new BindingList<DataLibrary.Companies>(companies);这将负责列表中对象的显示、更改、添加和删除。如果您的gridView不包含任何列并且AutoPopulateColumns为true,则将自动创建这些列。您可能希望使用设计器在gridView中设置列。不要忘记,将Field属性设置为底层对象的属性名称。
发布于 2012-02-27 22:47:16
我认为你应该开始编写DataBind方法
gridControl1.DataBind();所以你的代码将会是
companies = new List<DataLibrary.Companies>();
gridControl1.DataSource = companies;
gridControl1.DataBind();GridView.DataBind Method:将数据源绑定到GridView控件。
使用DataBind方法将数据源中的数据绑定到GridView控件。此方法解析控件的活动模板中的所有数据绑定表达式。
发布于 2012-02-27 22:50:25
您正确地设置了datasource属性,但还必须使用如下所示的DataBind方法将数据源绑定到控件
gridControl1.DataSource = companies;
gridControl1.DataBind();https://stackoverflow.com/questions/9466933
复制相似问题