繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM