1

of にComboBoxデータバインドされたがあります。も編集可能であるため、独自の値を入力するか、リストから値を選択できます。私が直面している問題は、のインデックスが、に独自の値を入力したときに選択した最後のアイテムのインデックスのように見えることですが、trueに設定すると -1 になります。ObservableCollectionstringsComboBoxSelectedItemComboBoxIsTextSearchEnabled

問題は、誰かが独自の値を入力してからComboBox、以前に選択されていたアイテムを代わりに選択することを決定した場合、インデックスが変更されないため、SelectionChangeイベントが発生しないことです。この状況でイベントを発生させるにはどうすればよいですか?

4

1 に答える 1

1

これをテストしてください...これが役立つことを願っています:

Dim oldSEL As String = ""

'always checking while you move your mouse over the combobox (when altering selection) and using the keyboard to (alter selection)
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.MouseMove, ComboBox1.KeyPress
    Dim currentSEL As String = ComboBox1.SelectedText
    If Not (oldSEL = "" And currentSEL = oldSEL) Then
        fire()
        oldSEL = currentSEL
    End If
End Sub

Private Sub fire()
    Trace.Write("text selected changed")
End Sub

すべての Combobox1 を好みに合わせて変更する必要があります。

于 2012-06-17T10:11:12.450 に答える