2007年8月6日月曜日

Valueプロパティが深い

日付入力コントロールが何とか形になってきたので、日付系セルをやっているわけだけど、こいつが深い。いや、正しくは「セルのValueプロパティに関わる動作が深い」なんだろうなぁ。

元々DataGridViewでは編集時にセルのValueプロパティを変更しても、編集コントロール側には反映する機能はなかったんだよね。それに対応するためにCellValueChangedイベントで、編集中なら編集コントロールのTextを書き換える、ってなことをやっているんだけど。
どう書き換えてあげればいいかなんてDataGridViewやセルからは判らない
だよなぁ。編集じゃない部分はCellのGetFormattedValueメソッドあたりを利用すればいいんだけど、編集コントロールに至ってはどうしようもない。Valueに入っているオブジェクトをどう編集させるかってのは、完全に編集コントロール(IDataGridViewEditingControl)側の世界なんだよね。
自前で用意しているセルだけだってんなら、それようのプロパティやらイベントやら用意すれば済むんだけど、デフォルトのセルも使うからそういう手段は使えないし・・・。

Reflectorでフレームワーク内部を除いていてもValueから実際に表示させているところが雰囲気つかめないんだよぅ。難しいわ。

0 件のコメント:

コメントを投稿