3

ここでばかげた問題がありますが、解決できません。問題は、プログラムでコンボボックスをデータにバインドすると、selectedItemが自動的に設定されますが、プロパティフィールドを使用して項目を追加すると、selectedItemが設定されません。

私の質問は、選択したイベントをトリガーせずにプログラムでアイテムをバインドするにはどうすればよいですか (デフォルトで selectedItem を設定しないプロパティを使用してバインドのように動作することを意味します)。前もって感謝します。

プログラムで設定された例

string[] items = {"リンゴ", "オレンジ", "バナナ"}; コンボボックス1.データソース=アイテム;

プログラムを実行すると、次のようになります (デフォルト値は Apple が選択されています)。

ここに画像の説明を入力

プロパティフィールドを使用したセットアイテムの例 (VS 2013)

ここに画像の説明を入力

次に、次のようになります (デフォルト値は選択されていません)。

ここに画像の説明を入力

4

3 に答える 3

5

VisualStudioのプロパティフィールドを使用してデータを設定すると、イベントをサブスクライブする前にすべての設定が適用されると思うので、サブスクライブを解除してからイベントをサブスクライブできます。

//unsubscribe the event handler (change the name of the event handler to your real name)
ComboBox1.SelectedIndexChanged -= ComboBox1_SelectedIndexChanged

//do your initialization
string[] items = {"Apple", "Orange", "Banana"}; 
comboBox1.DataSource = items;
comboBox1.SelectedIndex = -1;

//subscribe to it again
ComboBox1.SelectedIndexChanged += ComboBox1_SelectedIndexChanged
于 2013-10-08T09:50:26.760 に答える
0

Write ComboBox.SelectedIndex = -1 これで問題が解決します

于 2013-10-08T09:41:28.823 に答える
0

これを書く代わりに:

string[] items = {"Apple", "Orange", "Banana"}; 
comboBox1.DataSource = items;

あなたはこれを書きます:

string[] items = {"Apple", "Orange", "Banana"};
//comboBox1.Items.Clear();
comboBox1.Items.AddRange(items);
于 2014-11-02T12:20:08.847 に答える