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複数のタイプのオブジェクトを格納できることですが、アクセスする必要があるときに、元の使用可能なタイプに変換する必要があります。