- PR -

コンボボックスのバインドについて

投稿者投稿内容
こーた
会議室デビュー日: 2005/02/17
投稿数: 6
投稿日時: 2005-03-22 16:38
VS.NET2002のVB.NETでWindowsアプリを開発しています。

Bindingクラスのインスタンスを作成し
Binding.FormatにAddHandler ステートメントでイベントを追加して
ComboBoxコントロールのDataBindings.AddでBindingインスタンスを設定しています。

同様にテキストボックスやラベルにも設定しているのですが
AddHandlerで設定したイベントがコンボボックスの場合だけ実行されません。

色々試した結果、コンボボックスのDropDownStyleプロパティを
DropDownListに設定するとこの現象が出るようなのですが、
回避策はどのようにすればいいでしょうか?
よろしくお願い致します。
Lin
ベテラン
会議室デビュー日: 2004/11/08
投稿数: 50
投稿日時: 2005-03-22 17:23
Textに連結されていますか?
それでTextに表示されてますか?
DropDownListはListの中からしか選べません。
事前にItems.Addしておく必要があります。
こーた
会議室デビュー日: 2005/02/17
投稿数: 6
投稿日時: 2005-03-22 19:12
ComboBoxにはもちろん事前にItemの追加は済んでいます。

ただし、DropDownListのため
連結先が"SelectedValue"プロパティになっていました。
このままではまずいでしょうか?
"SelectedValue"の値変更ではFormatイベントは実行されないのでしょうか?
Lin
ベテラン
会議室デビュー日: 2004/11/08
投稿数: 50
投稿日時: 2005-03-22 21:41
私もこれ以上深くは知らないのですが、
Textに連結した場合は、イベントが起こるようです。
SelectedValueの場合は私のところもイベントは起きないです。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-03-23 19:53
引用:

ただし、DropDownListのため連結先が"SelectedValue"プロパティになっていました。
このままではまずいでしょうか?
"SelectedValue"の値変更ではFormatイベントは実行されないのでしょうか?


 やりたいことが見えないんですけど???
 DropDownListですよね?これって、「いくつかある選択肢の中から一つを選ぶ」ですよね?だとすると、“選択したもの”(SelectedValue)をバインドするのではなく、“選択肢”(Items)をバインドするんじゃないですか?

_________________
Lin
ベテラン
会議室デビュー日: 2004/11/08
投稿数: 50
投稿日時: 2005-03-23 23:53
質問者からの返事を待つのがいいかもしれませんが、
私が考えたことを書いときます。

社員情報を管理するシステムを考えるとして、
その会社に東京本社と大阪支社があるとします。
支社テーブルには、東京と大阪の二つのレコードが入っていて
支社テーブルはComboBoxのItemsにバインドしておきます。
一方、社員テーブルは10人いたら、10レコード存在し、
所属フィールドに東京か大阪のどちらか一方がはいるとします。
普通はIDだけど。
この社員テーブルをBindingクラスで操作するとすると、
このような質問になりませんかね?

この目的でこの方法がBestかどうかは知りませんが。(^^;

べーちゃん
大ベテラン
会議室デビュー日: 2002/07/21
投稿数: 121
投稿日時: 2005-03-24 04:16
引用:

Linさんの書き込み (2005-03-23 23:53) より:
社員情報を管理するシステムを考えるとして、
その会社に東京本社と大阪支社があるとします。
支社テーブルには、東京と大阪の二つのレコードが入っていて
支社テーブルはComboBoxのItemsにバインドしておきます。
一方、社員テーブルは10人いたら、10レコード存在し、
所属フィールドに東京か大阪のどちらか一方がはいるとします。
普通はIDだけど。
この社員テーブルをBindingクラスで操作するとすると、
このような質問になりませんかね?



BindingクラスのFormatイベントは、通常データのフォーマットなどを
変えてコントロールに表示するときに使うと思うのですが、この
ケースの場合、どちらかといえばコンボボックスのSelectedIndexChangedなどの
イベントを使うほうが多いですよね。

あともし使うならBindingManagerBaseクラスではないのかな。

>Binding.FormatにAddHandler ステートメントでイベントを追加して
>"SelectedValue"の値変更ではFormatイベントは実行されないのでしょうか?

といわれていますが
MSDNでは
Format コントロールのプロパティをデータ値にバインドすると発生します。
Parse データ連結コントロールの値が変更されると発生します。

となっているので発生するのはParseイベントではないかな。
Lin
ベテラン
会議室デビュー日: 2004/11/08
投稿数: 50
投稿日時: 2005-03-24 08:25
引用:

べーちゃんさんの書き込み (2005-03-24 04:16) より:
BindingクラスのFormatイベントは、通常データのフォーマットなどを
変えてコントロールに表示するときに使うと思うのですが、この
ケースの場合、どちらかといえばコンボボックスのSelectedIndexChangedなどの
イベントを使うほうが多いですよね。



私もFormatイベントで何をしたいかはわかりません。
DropDownStyleをDropDownListにした時点で、フォーマットは変えれない
はずですし。
まぁ、質問者の投稿を待ってみます。

スキルアップ/キャリアアップ(JOB@IT)