2007年4月24日火曜日

DataGridViewでコンボボックス

DataGridViewの基本機能の中でもくせ者中のくせ者、コンボボックス。

最初は全く持って例外が発生する理由がわからずに利用を断念していたんだけど、ここに来てようやく解決。.Netのコンボボックスの仕様とまったくもって違う仕様だったもんで、結構頭悩んだなぁ。独自クラスをItemsコレクションに放り込むまでは何ともないくせに、そのセルを編集やらなんやらしようとした瞬間に例外を放り投げてくれます。

結局DataGridViewComboBoxCellクラスを継承して独自セルを用意することで対応。ポイントとなるのは、値を表示する時と値から中身を用意するとき。表示は問題ないんだよね、この時点でセルのValueには独自クラスが入っているから。
ちょっと考えたのは値から中身を用意する方だったけど、よく考えてみるとColumn側で中身の候補は保持されているんだよね。なもんで、これも解決・・・と行きたかったんだけど、実は全てアンバウンドな状態じゃないと使えないんだよなぁ、これ。

バウンド時のロジックは気が向いたら入れておこう・・・。

0 件のコメント:

コメントを投稿