- R・田中一郎
- ぬし
- 会議室デビュー日: 2005/11/03
- 投稿数: 979
|
投稿日時: 2006-03-17 17:12
以前、Jittaさんに教えていただいてから、データソースを使ったコンボボックス
の設定ばかりを、サルのように使っているのですが、この度、ある条件に応じて動
的にコンボボックスの選択肢を変える必要性がでてきました。
しかし、一度表示したコンボボックスのデータソースを変更しても、選択肢が変わ
りません。
何かメソッドが用意されているのでしょうか?
refresh() など試してみたのですが駄目でした。
|
- 囚人
- ぬし
- 会議室デビュー日: 2005/08/13
- 投稿数: 1019
|
投稿日時: 2006-03-17 17:34
実際どのように書かれているのでしょうか?
_________________ 囚人のジレンマな日々
|
- R・田中一郎
- ぬし
- 会議室デビュー日: 2005/11/03
- 投稿数: 979
|
投稿日時: 2006-03-17 17:40
引用: |
|
囚人さんの書き込み (2006-03-17 17:34) より:
実際どのように書かれているのでしょうか?
|
こんな感じです。
コード: |
|
private void selectedItems_Changed(object sender, EventArgs e) {
this.comboBox.DataSource = this.selectedItems;
this.comboBox.ValueMember = "Value";
this.comboBox.DisplayMember = "Text";
this.Refresh();
}
|
選択肢を変える必要が生じた場合に、新しい候補が this.selectedItems にセット
されて、イベントが発生する仕組みなんですが。
ちなみに「this.comboBox.DataSource = this.selectedItems;」でブレークポイン
トを設定するとイベントは発生しており、this.comboBoxDataSource には新しいデ
ータが格納されていることは間違いないのです。
|
- 囚人
- ぬし
- 会議室デビュー日: 2005/08/13
- 投稿数: 1019
|
投稿日時: 2006-03-17 17:45
コード: |
|
private void selectedItems_Changed(object sender, EventArgs e) {
this.comboBox.DataSource = this.selectedItems;
this.comboBox.ValueMember = "Value";
this.comboBox.DisplayMember = "Text";
this.comboBox.DataBind();
}
|
かな?
#編集
あ、失礼。Windows Form ですね。
_________________
囚人@わんくま同盟
囚人のジレンマな日々
[ メッセージ編集済み 編集者: 囚人 編集日時 2006-03-17 17:52 ]
|
- R・田中一郎
- ぬし
- 会議室デビュー日: 2005/11/03
- 投稿数: 979
|
投稿日時: 2006-03-17 18:16
引用: |
|
囚人さんの書き込み (2006-03-17 17:45) より:
コード: |
|
private void selectedItems_Changed(object sender, EventArgs e) {
this.comboBox.DataSource = this.selectedItems;
this.comboBox.ValueMember = "Value";
this.comboBox.DisplayMember = "Text";
this.comboBox.DataBind();
}
|
かな?
|
DataBind() が conboBox に無いようなんですが。
|
- trapemiya
- 大ベテラン
- 会議室デビュー日: 2005/07/30
- 投稿数: 102
|
投稿日時: 2006-03-17 18:59
this.selectedItemsが何者かわからないのですが、
this.comboBox.DataSource = null;
this.comboBox.DataSource = this.selectedItems;
みたいにするとうまくいくかもしれません。
|
- 囚人
- ぬし
- 会議室デビュー日: 2005/08/13
- 投稿数: 1019
|
投稿日時: 2006-03-17 19:11
引用: |
|
DataBind() が conboBox に無いようなんですが。
|
すいません^^;
Web フォームかと思いまして(Web に ComboBox はないですが)
_________________ 囚人のジレンマな日々
|
- R・田中一郎
- ぬし
- 会議室デビュー日: 2005/11/03
- 投稿数: 979
|
投稿日時: 2006-03-17 19:17
引用: |
|
trapemiyaさんの書き込み (2006-03-17 18:59) より:
this.selectedItemsが何者かわからないのですが、
|
こんな者です。
コード: |
|
public class SelectedItems : List<SelectedItem> {
// ここでイベント発生させたり、List に値を格納している。
}
public class SelectedItem
{
#region Constructor
//**************************************************************************************************
// Constructor
//**************************************************************************************************
public SelectedItem(object value, string text) {
this._value = value;
this._text = text;
}
#endregion
#region Value Property
//**************************************************************************************************
// Value Property
//**************************************************************************************************
private object _value;
public object Value {
get {
return this._value;
}
}
#endregion
#region Text Property
//**************************************************************************************************
// Text Property
//**************************************************************************************************
private string _text;
public string Text {
get {
return this._text;
}
}
#endregion
#region ToString Method(Overrides)
//**************************************************************************************************
// ToString Method(Overrides)
//**************************************************************************************************
public override string ToString() {
return this.Text;
}
#endregion
}
|
引用: |
|
trapemiyaさんの書き込み (2006-03-17 18:59) より:
this.comboBox.DataSource = null;
this.comboBox.DataSource = this.selectedItems;
みたいにするとうまくいくかもしれません。
|
駄目でした orz
[ メッセージ編集済み 編集者: R・田中一郎 編集日時 2006-03-17 19:18 ]
#訂正です。
うまくいきました!
ありがとうございました。
[ メッセージ編集済み 編集者: R・田中一郎 編集日時 2006-03-17 19:38 ]
|