首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未绑定的GridControl

未绑定的GridControl
EN

Stack Overflow用户
提问于 2012-02-27 22:45:04
回答 4查看 2.1K关注 0票数 2

我有一个gridControl,它的数据源是一个列表。列表中的每一项都由三个字段组成。我在gridControl中有3列。当我以编程方式将值插入到网格视图中时,它不会出现。这是我的代码。

代码语言:javascript
复制
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();
    }
}

你知道哪里出问题了吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-28 22:31:30

问题是你不应该直接使用细胞。您的“公司”列表应该包含在BindingList中。所有的编程更改都是在对象级别进行的,而不是在网格级别。因此,设置数据源变成了

代码语言:javascript
复制
gridControl1.DataSource = new BindingList<DataLibrary.Companies>(companies);

这将负责列表中对象的显示、更改、添加和删除。如果您的gridView不包含任何列并且AutoPopulateColumns为true,则将自动创建这些列。您可能希望使用设计器在gridView中设置列。不要忘记,将Field属性设置为底层对象的属性名称。

票数 1
EN

Stack Overflow用户

发布于 2012-02-27 22:47:16

我认为你应该开始编写DataBind方法

代码语言:javascript
复制
gridControl1.DataBind();

所以你的代码将会是

代码语言:javascript
复制
companies = new List<DataLibrary.Companies>();     
gridControl1.DataSource = companies;
 gridControl1.DataBind();

GridView.DataBind Method:将数据源绑定到GridView控件。

使用DataBind方法将数据源中的数据绑定到GridView控件。此方法解析控件的活动模板中的所有数据绑定表达式。

票数 1
EN

Stack Overflow用户

发布于 2012-02-27 22:50:25

您正确地设置了datasource属性,但还必须使用如下所示的DataBind方法将数据源绑定到控件

代码语言:javascript
复制
gridControl1.DataSource = companies;
gridControl1.DataBind();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9466933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档