2007年11月30日金曜日

[.NET]ComboBoxのDataSource

今日、お隣さんが独自クラスの配列をコンボボックスに表示しようとしていました。で「ComboBoxのDataSourceに適当なクラスの配列突っ込めないかなぁ?」といっていました。で私が「いやーダメでしょう」と言っている横で、DataSourceにその配列を突っ込み、DisplayMemberとValueMemberにその独自クラスのプロパティ名をセットしてデバッグを開始していました。
まぁ当然Bindするときにエラーになるだろうと踏んでいたんですが、なんと正しく動作しているではないですか。
2人して「うそだろー」とハモってしまいました。

で、気になってしまいMSDNに書いてあるComboBoxの説明を見ると以下のように記載されていました。
-----
■DataSource
IList インターフェイスを実装する、DataSet または Array などのオブジェクト。既定値は null 参照 (Visual Basic では Nothing) です。

■DisplayMember
DataSource プロパティで指定されたコレクションに格納されているオブジェクト プロパティの名前を指定する String。既定値は空の文字列 ("") です。

■ValueMember
DataSource プロパティで指定されたコレクションに格納されているオブジェクト プロパティの名前を表す String。既定値は空の文字列 ("") です。
-----

・・・いやーどうなってるんだろう。今日の発見にまったくつながらない。。。

しかしこの手の部類(ListBoxやDataGridVIew)も同じ方式で実はいけてしまう?様な気がします。機会があれば調べてみよう。と思いました。

0 件のコメント: