使用DataSource作为List <int>的Winform Combobox

时间:2015-05-18 11:55:44

标签: c# winforms combobox datasource

这可能是一个非常简单的问题,但我意识到我无法使其发挥作用。

我有一个Winform组合框,数据源为List<int>

combo.DataSource = intList;

我为.DisplayMember.ValueMember添加了什么才能获得整数值列表?不设置它们将不会显示任何内容。

我与其他List<myObj>合作,其中DisplayMemberValueMember是myObj的属性。如intstring等简单数据类型怎么样?

检索所选项目时,可以简单地投射(int)(combo.SelectedItem)或者必须浏览与ValueMember对应的属性?

3 个答案:

答案 0 :(得分:2)

问题不会发生,因为你有一个整数列表,可能是因为在将项目分配给.DataSource属性之后将项目添加到列表中。列表没有在项目添加或删除项目时通知其容器的机制。

将项目分配给.DataSource属性之前将项目添加到列表,或者像Krishnraj Rana建议的那样使用像BindingSource这样的包装器。

答案 1 :(得分:1)

此处BindingSource出现了。你可以像这样使用它。

combo.DataSource = intList;

虽然你可以直接用list设置组合框的数据源。像这样 -

<xsl:if test="$PASS='true'">
            <xsl:if test="abc/@abcflowId = abc/@setId and (abc/RegId != 'IR_1' and abc/RegId != 'IR_2') ">
                <PassThru/>
                <xsl:text>Delivery all these</xsl:text>
            </xsl:if>
        </xsl:if>

这也完美无缺。

答案 2 :(得分:0)

您可以使用foreach这样添加列表中的项目。

foreach (var v in intList)
{
   comboBox1.Items.Add(v.ToString());
}