2011-01-27 14 views
13

Nel contesto di un data-bound ComboBox cui ValueMember e DisplayMember proprietà opportunamente impostato:eventi ComboBox: SelectedIndexChanged vs SelectedValueChanged

C'è una differenza tra il SelectedIndexChanged ei SelecetedValueChanged eventi? Vengono attivati ​​contemporaneamente quando viene selezionato un elemento dall'elenco a discesa dello ComboBox?

risposta

22

Bene, solo perché il tuo indice cambia non significa necessariamente che il tuo valore deve cambiare.

Anche questo potrebbe non essere lo scenario più realistico perché dal punto di vista del design questa implementazione sarebbe negativa.

Si supponga di visualizzare un ComboBox in cui vengono visualizzate le parti del corpo. Tuttavia, potresti esportare o archiviare queste informazioni in un formato mappato a valori interi. Pertanto, il tuo ComboBox potrebbe visualizzare "Braccio sinistro" e "Braccio destro" che sono mappati su un valore di 5, che definisce (5 = Upper Body) nella sua mappatura. Quindi, se l'utente passa da "Braccio destro" a "Braccio sinistro" non si verifica alcun cambiamento di valore; tuttavia lo SelectedIndex è cambiato.

Quindi penso che sia un caso per caso, ma questi eventi potrebbero sicuramente funzionare diversamente a seconda dei casi.

0

La differenza è che SelectedItemChange sarà -1 se si modifica il combobox ea non è parte dei valori indicizzati. Tuttavia, non appena inizi a digitare nella casella combinata, verrà attivato un evento di modifica del valore.

ea si può utilizzare la modifica del valore per attivare eventi che riformattano l'immissione di testo in un controllo domainupdown. E se qualcuno modifica un controllo domainupdown e il valore diventa -1, puoi raccogliere nuovi elementi nel suo elenco (premendo un pulsante e usando la proprietà domainupdown.text.

Problemi correlati