ComboBox 如何动态赋值 C#
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ComboBox 如何动态赋值 C#相关的知识,希望对你有一定的参考价值。
参考技术A Combox允许动态赋值的意思是动态的绑定数据,所以你上面cbxNums.DataSource=nums1这一句其实已经为Combox绑定了数据源了,只是说你没有将它的值显示出来而已,Combox绑定数据源后最重要的两个属性就是displaymember和valuemember,所以可以将代码修改为:
cbxNums.DataSource=nums1;
cbxNums.displaymember="要绑定的值1";//这个值将显示出来
cbxNums.valuemember="要绑定的值2";//这个绑定的值是value值,值1和值2可以一样
基本上就这些吧
不能解决的hi我
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";
}
}
那么结果就错了,然后每一项,就都是对应的对象的名字了:
具体根本原因,暂时懒得去深究了。
以上是关于ComboBox 如何动态赋值 C#的主要内容,如果未能解决你的问题,请参考以下文章