我有一个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/