我无法为未绑定的组合框设置默认的组合框选择值。这是我的代码:
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属性?如果是这样,我如何设置未绑定的组合框中显示的默认项?
答案 0 :(得分:11)
组合框(如列表框)有2种处理选择的机制。之一:
您将List分配给DataSource 属性并设置ValueMember和 DisplayMember为的名称 该列表的项目的属性。或者,
您使用填充Items属性
您选择的对象ToString()
将会显示。
在方案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只能与数据绑定数据源一起使用。