DevExpress LookUpEdit Problem
-
22-07-2019 - |
Pergunta
Esta deve ser uma tarefa bastante fácil, no entanto, estou um pouco perplexo, eu tenho um controle LookUpEdit, tenho databound-lo a uma fonte de dados e definir o DisplayMember e ValueMenber corretamente.
Este controle é agora corretamente preencher.
Meu problema é que normalmente eu puxar alguns dados e, em seguida, 'set' para a ID por exemplo:
LookUpEdit.EditValue = [Alguns ID do meu banco de dados]
No entanto, neste caso particular, eu não tenho acesso ao ID, mas eu tenho acesso ao valor displymember (a partir do banco de dados), assim como faço para definir o controle LookUpEdit dado o valor DisplayMember única?
Solução
Use:
lookUp.EditValue = lookUp.Properties.GetKeyValueByDisplayText(yourDisplayText);
É a maneira preferida. Usando propriedade Text é um pouco ilógico como você observou. Ele funciona agora, mas eu não ficaria surpreso se ele pára de funcionar no futuro depois de actualizar montagens DevExpress.
Outras dicas
Resolvido isso!
Se você configurá-lo da seguinte forma:
LookUpEdit .Text = [Valor da cadeia do banco de dados]
IF que valor da cadeia corresponde exatamente, então o editValue (ou seja, o ID) também é configurado corretamente para o item que você ter puxado a partir do banco de dados.
Esta propriedade 'Texto' parece um pouco ilógico (na minha opinião) (por exemplo, eles têm GetDatasourceByName etc, certamente não faria sentido ter SetItemByName ou algo semelhante!), Mas funciona em qualquer caso.