c# - 获取已填充 DataSource 的 ComboBox 的项目

标签 c# winforms .net-2.0 controls combobox

考虑有一个 ComboBox,它通过其 DataSource 属性填充。 ComboBox 中的每个项目都是自定义对象,ComboBox 设置有 DisplayMemberValueMember

IList<CustomItem> aItems = new List<CustomItem>();
//CustomItem has Id and Value and is filled through its constructor
aItems.Add(1, "foo"); 
aItems.Add(2, "bar");

myComboBox.DataSource = aItems;

现在的问题是,我想将项目读取为将在 UI 中呈现的字符串。考虑到我不知道 ComboBox 中每个项目的类型(CustomItem 我不知道)

这可能吗?

最佳答案

绑定(bind):

ComboBox1.DataSource = aItems;
ComboBox1.DisplayMember = "Value";

获取项目:

CustomItem ci = ComboBox1.SelectedValue as CustomItem;

编辑:如果你想要得到的只是组合框所有显示值的列表

List<String> displayedValues = new List<String>();
foreach (CustomItem ci in comboBox1.Items)
    displayedValues.Add(ci.Value);

关于c# - 获取已填充 DataSource 的 ComboBox 的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/867395/

相关文章:

c# - 绑定(bind)到嵌套属性只显示列表中的第一项

c# - 如果 MenuStrip 设置了此快捷方式,则快捷方式 Ctrl+C Ctrl+V 在文本框中不起作用

c# - 如何使用 C# 更新 Excel 工作表

asp.net - 错误页面上超过最大请求长度且未重定向

c# - Liskov 替换原则和 Streams

c# - 将长时间运行的任务与异步/等待模式结合起来的正确方法是什么?

c# - 如何启用/禁用 asp.net 表单/控件

c# - 并发连接期间的 Sharpssh "session is down"

c# - 通过 API 在 Team Services 中创建工作项

c# - 是否可以在 wpf 弹出窗口中放置彩色背景?