Gentili,
sono bloccato su una cosa penso stupida, mettendo le mani su codice scritto da un altro (tra l'altro molto più bravo di me).
Ho una form con una combobox che viene "bindata" all'apertura della form con una lista di clienti (DisplayMember = idAnag e ValueMember = Descrizione).
Selezionando un cliente da questa lista vengono popolati correttamente alcuni altri controlli textbox.
La procedura per popolare questi clienti è tutta asincrona e viene chiamata dall'evento SelectionChangeCommitted della combo modificato come async perché appunto richiama un metodo asincrono con await metodo();
Di seguito il codice:
private async void cbxCliente_SelectionChangeCommitted(object sender, EventArgs e)
{
await PopolaPromemoriaAsync(cbxCliente.SelectedValue as int?);
}
Il metodo funziona e popola correttamente tutto, solo che aggiorna il testo della combobox solo la prima volta che clicco sul menu a tendina, dopo rimane sempre il primo cliente selezionato anche se l'evento viene correttamente gestito.
Se cancello il metodo inserito nell'evento, cioè richiamo l'evento vuoto mi aggiorna sempre correttamente il testo visualizzato.
Se invece utilizzo l'evento SelectedIndexChanged() non ci sono problemi di aggiornamento ed il metodo funziona sempre, ma vorrei capire il perché di questo comportamento anomalo anche perché non vorrei che il programmatore di prima avesse scelto proprio SelectionChangeCommitted() per qualche motivo particolare, e trovarmi poi dei comportamenti strani.