[英]Insert a default row into a combobox that is bound to a datatable?
在winform上,有一个组合框,可从数据表中获取其信息。 数据表从数据库列表中提取。
this.cboList.DataSource = pullData();
this.cboList.DisplayMember = "fieldA";
设置数据源后,我将不能在组合框中插入默认行(即*)作为第一项。
我尝试了这个:
this.cboList.Items.Insert(0,"*");
设置数据源后,是否可以在组合框中插入数据,还是应该在数据表中完成?
UPDATE1:
解决方案如下所示:
var list = mydt.AsEnumerable().Select(row => row.Field<string>(fieldName)).ToList();
list.Insert(0, "*");
其中mydt是填充的数据表,fieldName是保存数据库字段名称的变量。
不要仅仅为了使UI工作而在源头修改数据。 而是将您的列提取到列表中,然后将其附加到组合框,然后可以对其进行修改。
var list = table.AsEnumerable().Select(row => row.Field<string>("fieldA")).ToList();
list.Insert(0, "*");
this.cboList.DataSource = list;
如果“全选”或“ *”是有效的选择选项,则它必须来自绑定源对象。 我过去通过将默认记录添加到集合中,然后再将其绑定到组合框来完成此操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.