簡體   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