1

我有一个ComboBox数据绑定到一个ObservableCollectionstrings。也是可编辑的ComboBox,因此您可以输入自己的值或从列表中选择一个。我遇到的问题是索引SelectedItem似乎是您在 中输入自己的值时选择的最后一个项目的索引ComboBox,尽管当您IsTextSearchEnabled设置为 true 时它是 -1。

问题是,如果有人输入了自己的值,然后决定改为选择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 回答