ComboBox.Items
は のコレクションなSystem.Object
ので、何でもかまいません。デフォルトでComboBox
は、オブジェクトのToString
メソッドの戻り値が表示されます。に追加するものは何でも返されますComboBox
が、それは として返され、System.Object
メンバーにアクセスするには元の型に戻す必要があります。
comboBox.Items.Add("foo");
上記は に a を追加System.String
しComboBox
ます。
class Foo
{
public String Bar { get; set; }
}
Foo foo = new Foo();
foo.Bar = "Value";
comboBox.Items.Add(foo);
上記は に a を追加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
複数のタイプのオブジェクトを格納できることですが、アクセスする必要があるときに、元の使用可能なタイプに変換する必要があります。