ComboBox.Items
是System.Object
's 的集合,所以它可以是任何东西。默认情况下,ComboBox
显示对象ToString
方法的返回值。无论你添加ComboBox
什么,你都会得到什么,尽管它作为 a 返回System.Object
,你必须将它转换回它的原始类型才能访问它的成员。
comboBox.Items.Add("foo");
以上将添加System.String
到ComboBox
.
class Foo
{
public String Bar { get; set; }
}
Foo foo = new Foo();
foo.Bar = "Value";
comboBox.Items.Add(foo);
以上将添加Foo
到ComboBox
. 所以要找回你的价值观。
Object obj = comboBox.Items[comboBox.SelectedIndex];
Foo foo = obj as Foo;
if (foo != null) { // check just in case
}
对于字符串,不需要转换,调用ToString
就可以了。最好只使用SelectedItem
。
Foo foo = comboBox.SelectedItem as Foo;
if (foo != null) { // again, check to make sure
}
的强大之处ComboBox
在于,由于它存储了 的集合System.Object
,因此您可以存储多种类型的对象,但是当您需要访问它时,您负责将其转换回最初的可用类型。