- - PR -
データバインド時のデータ変換について(文字列→CheckBox変換)
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-10-02 00:18
.NET FrameWork 3.5上でFormアプリケーション開発を行っています。
Form上に配置したCheckBoxコントロールに対し、2値の値を持つ文字列を バインドする方法を探しています。 現在、フォーム上にDataSetを配置し、BindingSource経由でフォーム上の テキストボックスなどにデータを渡しています。 この中で、"YES/NO"等の文字列が設定されているテーブル列があり、 その値に応じて、CheckBoxコントロールのCheckState(もしくはChecked) プロパティの値を変更したいと考えているのですが、何かいい方法はないでしょうか? 解決策がみつからず、現在はTextBoxコントロールに一旦値をバインドし、 TextBoxコントロールのTextChangedイベントでCheckBoxの値を操作し、 CheckBoxのClickedイベントで、TextBoxにCheckBoxの内容を渡しています。 しかし、このような方法ではCheckBoxの数が増えると破綻します。 何卒、いい方法を教えてください。 | ||||
|
投稿日時: 2008-10-02 01:30
デザイナレベルで済ませたいのなら、DataAdapterに指定するSQLにおいて、
の様に、文字列->数値変換を行えばよいでしょう 使用しているDBMSが何か分からないけど、最近のものならほぼcase句は使えるでしょう。 DB更新の際も、同様にcase句で場合分けを行えばよいでしょう。 ソースコードで対処するのであれば、バインド先のコントロールからBindオブジェクトを取得し、Formatイベントで文字列->数値変換を、Parseイベントで数値→文字列変換を行うようイベントハンドラを定義し、追加してあげればよいでしょう。 後者の詳細はBinding.Parse イベントのサンプルコードを眺めてみてください。 | ||||
|
投稿日時: 2008-10-03 03:03
回答ありがとうございました。
今回はSQLは利用していなかったためBinding.Parse、Formatイベントを 利用して解決しました。 デザイナから直接利用できないというのは不便ですが、それでも、 当初やっていた方法と比べれば雲泥の差でした。 ありがとうございました。 |
1