- - PR -
コンボボックスのバインドについて
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-03-22 16:38
VS.NET2002のVB.NETでWindowsアプリを開発しています。
Bindingクラスのインスタンスを作成し Binding.FormatにAddHandler ステートメントでイベントを追加して ComboBoxコントロールのDataBindings.AddでBindingインスタンスを設定しています。 同様にテキストボックスやラベルにも設定しているのですが AddHandlerで設定したイベントがコンボボックスの場合だけ実行されません。 色々試した結果、コンボボックスのDropDownStyleプロパティを DropDownListに設定するとこの現象が出るようなのですが、 回避策はどのようにすればいいでしょうか? よろしくお願い致します。 | ||||
|
投稿日時: 2005-03-22 17:23
Textに連結されていますか?
それでTextに表示されてますか? DropDownListはListの中からしか選べません。 事前にItems.Addしておく必要があります。 | ||||
|
投稿日時: 2005-03-22 19:12
ComboBoxにはもちろん事前にItemの追加は済んでいます。
ただし、DropDownListのため 連結先が"SelectedValue"プロパティになっていました。 このままではまずいでしょうか? "SelectedValue"の値変更ではFormatイベントは実行されないのでしょうか? | ||||
|
投稿日時: 2005-03-22 21:41
私もこれ以上深くは知らないのですが、
Textに連結した場合は、イベントが起こるようです。 SelectedValueの場合は私のところもイベントは起きないです。 | ||||
|
投稿日時: 2005-03-23 19:53
やりたいことが見えないんですけど??? DropDownListですよね?これって、「いくつかある選択肢の中から一つを選ぶ」ですよね?だとすると、“選択したもの”(SelectedValue)をバインドするのではなく、“選択肢”(Items)をバインドするんじゃないですか? _________________ | ||||
|
投稿日時: 2005-03-23 23:53
質問者からの返事を待つのがいいかもしれませんが、
私が考えたことを書いときます。 社員情報を管理するシステムを考えるとして、 その会社に東京本社と大阪支社があるとします。 支社テーブルには、東京と大阪の二つのレコードが入っていて 支社テーブルはComboBoxのItemsにバインドしておきます。 一方、社員テーブルは10人いたら、10レコード存在し、 所属フィールドに東京か大阪のどちらか一方がはいるとします。 普通はIDだけど。 この社員テーブルをBindingクラスで操作するとすると、 このような質問になりませんかね? この目的でこの方法がBestかどうかは知りませんが。(^^; | ||||
|
投稿日時: 2005-03-24 04:16
BindingクラスのFormatイベントは、通常データのフォーマットなどを 変えてコントロールに表示するときに使うと思うのですが、この ケースの場合、どちらかといえばコンボボックスのSelectedIndexChangedなどの イベントを使うほうが多いですよね。 あともし使うならBindingManagerBaseクラスではないのかな。 >Binding.FormatにAddHandler ステートメントでイベントを追加して >"SelectedValue"の値変更ではFormatイベントは実行されないのでしょうか? といわれていますが MSDNでは Format コントロールのプロパティをデータ値にバインドすると発生します。 Parse データ連結コントロールの値が変更されると発生します。 となっているので発生するのはParseイベントではないかな。 | ||||
|
投稿日時: 2005-03-24 08:25
私もFormatイベントで何をしたいかはわかりません。 DropDownStyleをDropDownListにした時点で、フォーマットは変えれない はずですし。 まぁ、質問者の投稿を待ってみます。 |