2009-09-07 7 views

Répondre

2

Vous devez utiliser une chaîne vide ou un autre modèle de texte unique au lieu de null.

Et puis vous pouvez gérer l'événement Format de la zone de liste déroulante pour intercepter le <empty> et afficher un autre texte.

private void comboBox1_Format(object sender, ListControlConvertEventArgs e) 
{ 
    e.Value = FormatForCombobox(e.ListItem); 
} 


private string FormatForCombobox(object value) 
{ 
    string v = (string) value; 
    if (v == string.Empty) 
    v = "<no Selection>"; 
    return v; 
} 
+0

Je ne peux pas ajouter quoi que ce soit à la combobox parce qu'il est lié à la liste des entités. – wRAR

+0

Vous pouvez toujours ajouter un événement lorsqu'il est lié. –

+0

Ça ne va pas aider parce que je n'ai rien de spécial à formater. – wRAR

7

Si vous lier à IEnumerable liste des entités que vous pouvez certainement ajouter votre objet vide manuellement.

Par exemple

var qry = from c in Entities 
      select c; 
var lst = qry.ToList(); 

var entity = new Entity(); 
entity.EntityId= -1; 
entity.EntityDesc = "(All)"; 
lst.Insert(0, entity); 

MyComboBox.DataSource = lst; 
MyComboBox.DisplayMember = "EntityDesc" 
MyComboBox.ValueMember = "EntityId" 
Questions connexes