C#中ComboBox动态绑定赋值

 http://www.crifan.com/csharp_combobox_data_dynamic_binding/

C#中,已有一个List,想要动态的,绑定到ComboBox中。

【解决过程】

1.参考:

c# winform comboBox动态绑定数据

去试试代码:

cmbSubCategory.DataSource = generalCategoryList;
cmbSubCategory.DisplayMember = "name";
cmbSubCategory.ValueMember = "url";
结果是可以执行,但是点击combobox时,下来菜单是空的。

2.参考:

C# Binding Generic LIst<string> to Combo Box

打算去试试。

3.经过后来的折腾,找到原因了:

【已搞懂】C#中代码加了断点,但是调试时却无法执行到

4.然后此处,实际上是,之前的写法,就是正常的:

public struct categoryItem
{
public string Name { get; set; }
public string Url { get; set; }
};
List<categoryItem> generalCategoryList;

private void initSearchCategory()
{
generalCategoryList = new List<categoryItem>();

foreach (HtmlNode singleOptionNode in optionNodeList)
{
......

//store info
categoryItem singleCategoryItem = new categoryItem();
singleCategoryItem.Name = generalCategory;
singleCategoryItem.Url = singleCategoryUrl;
//add to list
generalCategoryList.Add(singleCategoryItem);
}

if (generalCategoryList.Count > 0)
{
//init search category
cmbSubCategory.DataSource = generalCategoryList;
cmbSubCategory.DisplayMember = "name";
cmbSubCategory.ValueMember = "url";
}
}
然后ComboBox中就可以看到对应的选项了:

 

【总结】

绑定的动作,其实很简单:

cmbSubCategory.DataSource = generalCategoryList;
cmbSubCategory.DisplayMember = "name";
cmbSubCategory.ValueMember = "url";
就可以了。

但是要注意:

此处,如果改为:

public struct categoryItem
{
public string name;
public string url;
};
List<categoryItem> generalCategoryList;

private void initSearchCategory()
{
generalCategoryList = new List<categoryItem>();

foreach (HtmlNode singleOptionNode in optionNodeList)
{
......

//store info
singleCategoryItem.name = generalCategory;
singleCategoryItem.url = singleCategoryUrl;
//add to list
generalCategoryList.Add(singleCategoryItem);
}

if (generalCategoryList.Count > 0)
{
//init search category
cmbSubCategory.DataSource = generalCategoryList;
cmbSubCategory.DisplayMember = "name";
cmbSubCategory.ValueMember = "url";
}
}
那么结果就错了,然后每一项,就都是对应的对象的名字了:

 

具体根本原因,暂时懒得去深究了。

转载于:https://www.cnblogs.com/Echo529/p/6382179.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值