ComboBox.Items
はSystem.Object
のコレクションなので、何でもかまいません。デフォルトでは、ComboBox
は、オブジェクトのToString
メソッドの戻り値を表示します。 ComboBox
に何を追加しても返されるものはSystem.Object
として返されます。メンバーにアクセスするには元のタイプに戻す必要があります。
comboBox.Items.Add("foo");
上記ComboBox
にSystem.String
を追加します。
class Foo
{
public String Bar { get; set; }
}
Foo foo = new Foo();
foo.Bar = "Value";
comboBox.Items.Add(foo);
上記ComboBox
にFoo
を追加します。あなたの価値を取り戻すために。
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
のコレクションを格納するので、あなたがオブジェクトの複数のタイプを格納できるということですが、それはときに開始するようにしたものは何でも使用可能な型に戻って変換を担当していますそれにアクセスする必要があります。
あなた自身で試すことができます... – MilkyWayJoe
@MilkyWayJoe:上記を読んだら、私はいつもこれらの問題を抱えているようだし、コードが壊れているので、私は現在のプロジェクトでそれらを変更しようとしていません。 –
アイテムはどのようにコンボボックスに読み込まれますか?それはそれらのプロパティの戻り値に影響します。 – Kratz