2010-02-18 5 views
0

J'ai quelques lookupedits liés à certaines listes où l'utilisateur peut choisir des valeurs, puis enregistrer dans la base de données. J'utilise les événements EditValueChanged pour gérer les valeurs. Jusqu'ici tout va bien!DevExpress LookUpEdit SelectedText Problème

Maintenant, j'ai besoin de saisir les valeurs de la base de données et de les affecter aux recherches. Je n'utilise pas BindingSource pour l'ensemble de l'objet parce que lookupedits sont liés à des listes indépendantes. Comme je l'ai supposé et lu dans la documentation, SelectedText est ce dont j'ai besoin, mais quand j'attribue la chaîne que je veux, cela ne fonctionne pas et définit une chaîne vide. Même comportement pour le contrôle DateEdit, j'attribue une valeur DateTime et semble avoir cette valeur mais ne l'affiche pas. Je pourrais définir la propriété EditValue mais je n'obtiens rien de nouveau dans le LookUpEdit. Comment forcer le LookUpEdit pour me montrer la valeur que je veux, fondamentalement aller à la ligne avec la valeur que j'ai définie et montrer le texte dans l'éditeur aussi, ou mettre le SelectedText et l'assortir avec sa liste et l'afficher!

Je suppose que cela devrait être plus facile ... Toute aide appréciée!

Exemple:

myLookUpEdit.SelectedText = "George" // The LookUpEdit is Binded to a List<Names> and has the name George. 

Merci

Répondre

1

Chaque fois que je suis en train de la valeur d'un LookupEdit j'utilise EditValue.

Vous devez vous assurer que vous avez défini la propriété ValueMember du LookupEdit sur ce que vous voulez voir apparaître dans EditValue. DisplayMember sera ce qui est affiché lorsque le LoodupEdit est fermé. Vous pouvez transmettre une chaîne au nom de la propriété que vous souhaitez dans votre objet pour ces propriétés.

La définition de la valeur SelectedText a le même effet que la saisie dans le contrôle autant que je sache.

public partial class Form1 : Form 
{ 
    List<Name> MyNames = new List<Name>(); 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     MyNames.Add(new Name("John", "Smith")); 
     MyNames.Add(new Name("John", "Doe")); 
     MyNames.Add(new Name("Jane", "Doe")); 
     MyNames.Add(new Name("Jane", "Smith")); 

     lookUpEdit1.Properties.DataSource = MyNames; 
     lookUpEdit1.Properties.DisplayMember = "FirstName"; 
     lookUpEdit1.Properties.ValueMember = "FirstName"; 

    } 

    private void lookUpEdit1_EditValueChanged(object sender, EventArgs e) 
    { 

     string mystring = lookUpEdit1.EditValue.ToString(); 

     lookUpEdit1.EditValue = mystring; 
    } 
} 

public class Name 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 

    public Name(string firstName, string lastName) 
    { 
     this.FirstName = firstName; 
     this.LastName = lastName; 
    } 
} 
+0

Merci pour votre temps, je l'ai fixe :) –

+0

je manque quelque chose ici ... Pourquoi dans le monde avez-vous mis la '' EditValue' de lookUpEdit1' à une autre variable puis définissez la 'EditValue' de' lookUpEdit1' à cette variable? C'est déjà égal à ça, n'est-ce pas? N'êtes-vous pas en train de créer une autre variable pour rien? –

Questions connexes