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

C#中ComboBox动态绑定赋值相关推荐

  1. 编程控制Word文档中Table的赋值

    当在线打开的Word文档中包含有Table时,如何给Table中的单元格赋值呢?如果是仅仅几个数据,用户可以一个个手动填写,但若是从数据库中读取的大量数据,再想一个个填写那可就真正让人头疼了,在这种情 ...

  2. 【Groovy】Groovy 方法调用 ( Groovy 构造函数中为成员赋值 | Groovy 函数的参数传递与键值对参数 | 完整代码示例 )

    文章目录 一.Groovy 构造函数中为成员赋值 二.Groovy 函数的参数传递与键值对参数 三.完整代码示例 一.Groovy 构造函数中为成员赋值 Groovy 类没有定义构造函数 , 但是可以 ...

  3. 在shell中变量的赋值有五种方法

    在shell中变量的赋值有五种 :使用 read 命令,直接赋值,使用命令行参数,使用命令行的输出结果,从文件读取 1. 直接赋值,格式为:变量名 = 变量值 2.Read 命令是系统内置命令,语法格 ...

  4. c#(winform)中ComboBox和ListBox添加项完全解决

    c#(winform)中ComboBox和ListBox添加项完全解决 c#(winform)中ComboBox和ListBox添加项完全解决 刚开始用.net 的winform开发,发现好些控件都很 ...

  5. C++尽量在operater=中处理“自我赋值”

    operater=中处理"自我赋值 下面的operator=实现是一份不安全的实现,在自赋值时会出现问题: 1.在开头添加"证同测试" c++ 2.通过确保异常安全来获得 ...

  6. delphi中combobox键值对

    delphi中combobox键值对 2010-09-13 10:46:51|  分类: 默认分类 |  标签: |字号大中小 订阅 1.添加键值对: cbb1.Items.AddObject('显示 ...

  7. 进程中的信号赋值与变量赋值

    进程中的信号赋值与变量赋值 比较对象 信号SIGNAL 变量VARIABLE 基本用法 用于作为电路的信号连线 用于作为进程中局部数据存储单元 适用范围 在整个结构体内的任何地方都能适用 只能在所定义 ...

  8. 如何理解JavaScript中给变量赋值,是引用还是复制

    一.JavaScript中值的类型 JavaScript中的值分为2大类:基本类型和引用类型.每种类型下面又分为5种类型. 基本类型: 数字类型:Number:字符串类型:String:布尔类型:Bo ...

  9. java中的动态绑定与静态绑定

    首先是方法的参数是父类对象,传入子类对象是否可行 然后引出Parent p = new Children(); 这句代码不是很理解,google的过程中引出向上转型 要理解向上转型又引出了动态绑定 从 ...

最新文章

  1. 不能从农行服务器获取配置文件,#新手入门#请问,农行网银用的好好的突然出现这个就不能用了怎么解决呢?谢谢...
  2. apache-jmeter-3.1的简单压力测试使用方法(下载和安装)
  3. 简明python教程 --C++程序员的视角(八):标准库
  4. Django-HttpResponse、render,、redirect(转载)
  5. ASP.NET的学习之asp.net整体运行机制
  6. 为机场按上一双“慧眼”消灭飞机的“黑色十分钟”
  7. 德鲁伊 oltp oltp_内存中OLTP –更快变得更简单!
  8. git log --stat的使用说明
  9. 阿里巴巴confont项目的使用
  10. UITableView划动删除的实现
  11. 深度学习 3. MatConvNet (CNN)的介绍和下载以及CPU和GPU的安装配置,Matlab2016
  12. DataV阿里云可视化(地图下钻、数据获取) - 文档篇
  13. matlab函数表达式里分号_matlab中分号、冒号、逗号等常用标点符号的功能和用法总结...
  14. 即时通讯软件会取代电子邮件吗?
  15. python文字游戏循环3次_Python寻宝游戏中的无限循环
  16. 工业相机及镜头的简单全面介绍
  17. 什么是系统集成(SI)?
  18. 大数据智慧数字电商第五课 程序整合 可视化和BI分析
  19. teamview被限制使用的解决办法
  20. Proxifier使用教程

热门文章

  1. 【图像分类】如何使用 mmclassification 训练自己的分类模型
  2. python文本结构化处理_在Python中标记非结构化文本数据
  3. 犀牛建模软件的英文语言包_使用tidytext和textmineR软件包在R中进行主题建模(
  4. 第十三章 时间序列分析和预测
  5. CSDN开播工具-主持人使用说明
  6. 人工智能、机器学习、深度学习和神经网络的区别
  7. 商务英语老师给的6个建议
  8. 同盟与对抗:谈《少女杜拉的故事》中的治疗关系(转)
  9. ora29280 oracle,细节:utl_file_dir错误设置导致ORA-29280
  10. pytorch 查看中间变量的梯度