将默认行插入绑定到数据表的组合框中?

时间:2010-06-11 14:30:59

标签: c# winforms .net-3.5 combobox datatable

在winform上有一个组合框,它从数据表中获取信息。数据表从数据库列表中提取。

this.cboList.DataSource = pullData();
this.cboList.DisplayMember = "fieldA";

设置DataSource后,我无法插入默认行(即*)作为组合框中的第一项。

我试过了:

this.cboList.Items.Insert(0,"*");

在数据源设置后是否有可能在组合框中插入或者是否应在数据表中完成?

UPDATE1:

解决方案看起来像这样:

 var list = mydt.AsEnumerable().Select(row => row.Field<string>(fieldName)).ToList();
 list.Insert(0, "*");

其中mydt是填充的数据表,fieldName是包含数据库字段名称的变量。

2 个答案:

答案 0 :(得分:2)

请勿在源代码处修改数据,以使您的用户界面正常运行。相反,可能会将列提取到可以在将其附加到组合框之前修改的列表中。

var list = table.AsEnumerable().Select(row => row.Field<string>("fieldA")).ToList();
list.Insert(0, "*");
this.cboList.DataSource = list;

答案 1 :(得分:0)

如果“选择无”或“*”是有效的选择选项,则它需要来自绑定源对象。我在过去通过在将它绑定到组合框之前向集合添加默认记录来完成此操作。