2

ユーザーがドロップダウンコンボボックスから値を選択するたびに、その選択がコレクションの最初の項目(インデックス0)になるコードを作成しました。

[_ MyComboBox _] [v]

     |Dog
     |Tree
     |House

ユーザークリック「ツリー」

[_ MyComboBox _] [v]

     |Tree
     |Dog
     |House

問題は、この操作の後、すべてが正常に機能していても、comboBoxが空白のままであり、ユーザーが何をしたかについての手がかりがないことです。

しかし、誰もが示唆しているようMyComboBox.SelectedIndex = 0;に、イベントハンドラーMyComboBox_SelectedIndexChanged(...)内から呼び出すため、無限ループがトリガーされます。

私も試しMyComboBox.Text = string_that_contains_what_I_want_to_display;ましたが、SelectedIndexChangedとSelectedValueChangedの両方がトリガーされます。

率直に言って、同じ値、インデックスと値の両方を持つアイテムから切り替えてもトリガーされる理由がわかりません。私が理解している限り、SelectedValueChangedは、2つのアイテムの内容が異なる場合にのみトリガーする必要があります。

このパズルから抜け出すのを手伝ってくれる人に感謝します。

ソートが完了したら、プログラムインターフェイスでソート操作の結果を表示する必要があります。コントロールを含むページ全体をリロードできます。それは機能しますが、あまり効率的ではありません。

4

1 に答える 1

8

SelectionChangeCommittedの代わりにイベントを使用してくださいSelectionChange。イベントは、SelectionChangeCommittedプログラムが変更を加えたときではなく、ユーザーが変更を加えたときにのみ発生します。

于 2012-07-31T15:14:51.027 に答える