以数据源为列表的 Winform Combobox<int>
Winform Combobox with DataSource as List<int>
这可能是一个非常简单的问题,但我意识到我做不到。
我有一个带有数据源的 Winform 组合框 List<int>
combo.DataSource = intList;
我应该为 .DisplayMember
和 .ValueMember
添加什么以便简单地拥有一个整数值列表?不设置它们将不会显示任何内容。
我曾与其他 List<myObj>
合作过,其中 DisplayMember
和 ValueMember
是 myObj 的属性。像 int
、string
这样的简单数据类型怎么样?
获取选中的物品时,可以简单的施放(int)(combo.SelectedItem)
或者必须经过ValueMember
对应的属性?
这里 BindingSource 出现了。你可以这样使用它。
BindingSource bSource = new BindingSource();
bSource.DataSource = new List<int> { 1, 2, 3 };
combo.DataSource = bSource;
虽然你可以直接用列表设置组合框的数据源。像这样 -
combo.DataSource = intList;
这也很好用。
您可以像这样使用 foreach 从列表中添加项目。
foreach (var v in intList)
{
comboBox1.Items.Add(v.ToString());
}
问题不会发生,因为你有一个整数列表,它可能会发生,因为你将项目添加到列表之后将它分配给.DataSource
属性。 List 没有在向其添加或从中删除项目时通知其容器的机制。
在 将项目分配给 .DataSource
属性 之前将项目添加到列表 ,或者使用像 BindingSource
这样的包装器作为 Krishnraj Rana建议。
这可能是一个非常简单的问题,但我意识到我做不到。
我有一个带有数据源的 Winform 组合框 List<int>
combo.DataSource = intList;
我应该为 .DisplayMember
和 .ValueMember
添加什么以便简单地拥有一个整数值列表?不设置它们将不会显示任何内容。
我曾与其他 List<myObj>
合作过,其中 DisplayMember
和 ValueMember
是 myObj 的属性。像 int
、string
这样的简单数据类型怎么样?
获取选中的物品时,可以简单的施放(int)(combo.SelectedItem)
或者必须经过ValueMember
对应的属性?
这里 BindingSource 出现了。你可以这样使用它。
BindingSource bSource = new BindingSource();
bSource.DataSource = new List<int> { 1, 2, 3 };
combo.DataSource = bSource;
虽然你可以直接用列表设置组合框的数据源。像这样 -
combo.DataSource = intList;
这也很好用。
您可以像这样使用 foreach 从列表中添加项目。
foreach (var v in intList)
{
comboBox1.Items.Add(v.ToString());
}
问题不会发生,因为你有一个整数列表,它可能会发生,因为你将项目添加到列表之后将它分配给.DataSource
属性。 List 没有在向其添加或从中删除项目时通知其容器的机制。
在 将项目分配给 .DataSource
属性 之前将项目添加到列表 ,或者使用像 BindingSource
这样的包装器作为 Krishnraj Rana建议。