2013-03-01 5 views
5

Ho già fatto una domanda simile, ma il codice era molto più complicato. Questa domanda comporta un problema simile, ma il codice è drasticamente semplificato. Tuttavia, anche se semplice come questo esempio, NON POSSO ottenere il menu a discesa per preselezionare il valore corretto.Come posso impostare il valore selezionato su DevExpress LookupEdit?

Ho un menu a discesa popolato con valori correttamente. Inoltre, quando cambio il menu a discesa su uno qualsiasi dei valori e quindi salvando il modulo, il record del database viene aggiornato con il valore corretto. Funziona molto, ma selezionare il valore corretto sul caricamento del modulo non funzionerà.

Ho messo queste righe nel mio metodo di salvataggio, solo per vedere con cosa sto lavorando.

var test1 = _myLookupEdit.EditValue; //evaluates to 2 
var test2 = _myLookupEdit.Properties.KeyValue; //evaluates to 2 

Tuttavia, quando si imposta uno di questi durante il caricamento del modulo, non accade nulla; il menu a discesa ha una voce vuota selezionata (e il resto dei valori viene visualizzato quando espandi il menu a discesa). Ho provato ciascuno di questi metodi:

_myLookupEdit.EditValue = 2; 
_myLookupEdit.Properties.KeyValue = 2; 

Modifica - ho postato un commento qui sotto sotto la risposta di Platon, ma vi posterò qui pure. Alla fine ho usato una stored procedure per popolare questo menu a discesa, invece di un Enum. Da quel momento in poi, il menu a discesa è stato caricato con il valore selezionato corretto.

risposta

10

È necessario impostare la proprietà EditValue dell'editor su un valore in base al tipo di proprietà Properties.ValueMember del redattore. Voglio dire, se questo è un campo stringa, EditValue dovrebbe essere impostato su "2", non 2 e così via. Questo dovrebbe aiutare. In caso contrario, provare a richiamare il metodo Properties.ForceInitialize() dell'editor dopo aver impostato la proprietà DataSource dell'editor.

+0

Mi dispiace segnalare che ha avuto effetto zero, ma apprezzo l'aiuto. – WEFX

+0

pubblica un progetto di esempio e lo aggiornerò per te .... – platon

+0

Ho cambiato il mio progetto per popolare con un proc memorizzato, invece di un Enum. Bounty va a platon per lo sforzo. – WEFX