2009-07-09 6 views
3

WindowsフォームアプリケーションのラジオボタンにSQLテーブルをバインドしようとしています。C#のラジオボタンをSQLテーブルに簡単にバインドする方法

ボタンはグループボックスでグループ化されています。私はまだデータソースに正しくバインドする方法を見つけていません。私はカスタムコントロールを作成することでこれを行うことができた人がいることは知っていますが、より簡単な方法がありますか?

+0

ラジオボタンをバインドしようとしていますか?グループボックスごとにテーブル内に複数のブール値の列がありますか? –

+0

どのデータベースアクセステクノロジーを使用しますか? ADO.NET? LINQ to SQL?エンティティフレームワーク? –

+0

ボタンの値は、テーブルの列挙型または1列に関連付けられているのか、一連の列でサポートされているのですか。 –

答えて

6

編集:これはおそらくよりクリーンな方法です(テストはされていますが、うまくいくはずです)。

実際にはラジオボタンに直接(Bindingを使用して)バインドする必要がありますが、Binding.ParseBinding.Formatイベントを処理する必要があります。

'Format'イベントでは、Checkedプロパティを設定し、Parseイベントでは、チェックされた値に基づいて値を保存します。


オリジナルのアイデア:カスタムコントロールまたはサブクラスを作成することなく、最も簡単な方法は、おそらく直接結合するのではなく、仲介者としての値を自分でロードして保存すること。

1つの方法である:

  • BindingSource.CurrentItemChangedイベントを購読するとChecked特性に応じてラジオボタンを設定します。

  • RadioButton.CheckedChangedイベントを購読し、基礎となるデータソースを適切に設定します。

+1

これは私のはるかに良い解決策です!もちろん、それらのイベントの名前を覚えておく必要がありますが、それはエレガントです+1 – tekBlues

+0

いいですね。ありがとう! - 私は+1を与えるだろうが、私はまだ資格情報がありません;) –

+0

さらに良い音!どうもありがとう。 –

3

汚いトリックを使用しました。

隠しテキストボックスを作成します。それをデータソースにバインドし、ラジオボタンをアンバウンドのままにします。次に、textbox changeイベントをプログラムして、ラジオボタンの値とラジオボタンのクリックイベントを設定して、テキストボットの値を設定します。

汚いですが、動作します。

+0

WTF!?! :D –

+0

非常に賢い! :) –

+0

それはかなり良いです... –