Windows.Form ComboBox无法设置Unbound Control的SelectedValue属性

时间:2009-06-11 20:08:39

标签: c# combobox

我无法为未绑定的组合框设置默认的组合框选择值。这是我的代码:

         System.Console.WriteLine("Current Tag Org Id = " + CurrentTag.Org.OrgId);
         ddlRUC.SelectedValue = CurrentTag.Org.OrgId;
         System.Console.WriteLine("ddlRUC selected value = " + ddlRUC.SelectedValue);

这是输出: 当前标记组织ID = 285 ddlRUC选择值=

请注意,ddlRUC.SelectedValue尚未设置为285.是否需要绑定数据源才能使用SelectedValue属性?如果是这样,我如何设置未绑定的组合框中显示的默认项?

7 个答案:

答案 0 :(得分:11)

组合框(如列表框)有2种处理选择的机制。之一:

  1. 您将List分配给DataSource 属性并设置ValueMember和 DisplayMember为的名称 该列表的项目的属性。或者,

  2. 您使用填充Items属性 您选择的对象ToString() 将会显示。

  3. 在方案1)中,您可以使用SelectedValue根据ValueMember获取/设置选择。

    方案2中的

    您使用SelectedItem属性而不是SelectedValue

    所以问题是,你如何填写物品?

答案 1 :(得分:11)

SelectedValue属性仅适用于数据绑定列表框。如果您可以在列表<>中创建列表项,则可以将列表绑定到控件,SelectedValue将按您的意愿工作。

答案 2 :(得分:4)

我遇到了这个问题,浪费了宝贵的时间,因为我的列表中的值与我尝试分配给SelectedValue的值的int类型不同,例如int32 vs int16。会让你发疯的事情是没有编译错误或抛出运行时异常。它只是不起作用。获取匹配的int类型,它很有用!请注意,组合框必须绑定。

答案 3 :(得分:0)

你的未绑定的ComboBox中有286个项目吗?否则该id对它没有任何意义。

答案 4 :(得分:0)

我可能误解了你想要完成的事情,但是ComboBox要么必须有项目(我相信它有.Items,就像ListBox一样),或者它必须被绑定到数据源才能有。默认项目。

答案 5 :(得分:0)

组合框中的项目是否有值?您可以使用Items.FindByText(字符串文本)或Items.FindByValue(字符串值)来返回您要查找的ListItem。

答案 6 :(得分:0)

The documentation for SelectedValue声明该属性将返回“包含ValueMember属性指定的数据源成员值的对象”。 ValueMember属性文档声明它表示集合中分配给DataSource属性的对象属性的名称。

所以,是的,ValueMember只能与数据绑定数据源一起使用。