介绍
通常情况下我们可以手动赋值,比如在Properties的items中添加需要的内容(示例如下图),但是多数情况下我们想要的是可以灵活增加里面的,因此下面推荐利用代码对他进行初始化赋值。
代码展示
public void SetTableToCheckedComboBox(CheckedComboBoxEdit ccb, DataTable table, String showCap = "显示值", String actualCap = "实际值")
{
ccb.Properties.Items.Clear();
if (table != null && table.Rows.Count > 0)
{
CheckedListBoxItem[] cItems = new CheckedListBoxItem[table.Rows.Count];
int i = 0;
foreach (DataRow dr in table.Rows)
{
cItems[i] = new CheckedListBoxItem(dr[actualCap].ToString(), dr[showCap].ToString());
i++;
}
ccb.Properties.Items.AddRange(cItems);
}
}
其中代码思路是将从数据表中的下拉内容以DataTable传入,然后其值由展示值和实际值两种,例如:是:1;否:0,我们想展示中文名,但实际选中后进入查找为0、1状态值,因此上面代码有展示列名和实际列名两者。
PS获取下面选中的实际值代码示例
public List<String> GetEditValueFromCheckedComboBoxEdit(CheckedComboBoxEdit ccb)
{
List<String> valList = new List<string>();
String[] edits = ccb.EditValue.ToString().Split(',');
foreach(String val in edits)
{
valList.Add(val.Trim());
}
return valList;
}