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

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


有什么问题的想法吗?

最佳答案

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

gridControl1.DataSource = new BindingList<DataLibrary.Companies>(companies);


这将处理列表中对象的呈现,更改,添加和删除。如果您的gridView不包含任何列并且AutoPopulateColumns为true,则将自动创建列。您可能想使用Designer在gridView中设置列。不要忘记,因此将Field属性设置为基础对象的属性名称。

关于c# - 未绑定(bind)的GridControl,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9466933/

10-10 07:21