DevExpress LookUpEdit Problem
-
22-07-2019 - |
Domanda
Questo dovrebbe essere un compito abbastanza semplice, tuttavia sono un po 'sconcertato, ho un controllo LookUpEdit, l'ho collegato in un database a un'origine dati e impostato correttamente displaymember e ValueMenber.
Questo controllo ora viene popolato correttamente.
Il mio problema è che normalmente estraggo alcuni dati e poi li "imposta" sull'ID, ad esempio:
LookUpEdit.EditValue = [Alcuni ID dal mio database]
Tuttavia, in questo caso particolare, non ho accesso all'ID MA ho accesso al valore displymember (dal database), quindi come posso impostare il controllo LookUpEdit dato solo il valore displaymember?
Soluzione
Usa:
lookUp.EditValue = lookUp.Properties.GetKeyValueByDisplayText(yourDisplayText);
È il modo preferito. L'uso della proprietà Text è un po 'illogico come hai notato. Funziona ora, ma non sarei sorpreso se smettesse di funzionare in futuro dopo l'aggiornamento degli assembly DevExpress.
Altri suggerimenti
Risolto!
Se lo imposti come segue:
LookUpEdit .Text = [Valore stringa dal database]
IF che il valore di stringa corrisponde esattamente, quindi editValue (ovvero l'ID) è anche impostato correttamente sull'elemento estratto dal database.
Questa proprietà 'Testo' sembra alquanto illogica (a mio avviso) (ad esempio hanno GetDatasourceByName ecc., sicuramente avrebbe senso avere SetItemByName o qualcosa di simile!), ma funziona comunque.