Fügen Sie einen leeren Eintrag zur Combobox hinzu, die an die Entitätsliste gebunden ist

c# combobox data-binding entity-framework winforms

Frage

Ich verwende eine ComboBox, die an eine Liste von Entitäten gebunden ist. Wie kann ich der Combobox einen Eintrag "Nicht ausgewählt" hinzufügen? Das Hinzufügen von Null zur Liste führt zu einer leeren Combobox.

Akzeptierte Antwort

Sie sollten eine leere Zeichenfolge oder ein anderes eindeutiges Textmuster anstelle von null verwenden.

Und dann können Sie mit dem Format-Ereignis der Combobox das <empty> abfangen und einen alternativen Text anzeigen.

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;
}

Beliebte Antwort

Wenn Sie an eine IEnumerable Liste von Entitäten IEnumerable sind, können Sie Ihr leeres Objekt sicherlich manuell hinzufügen.

Zum Beispiel

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"


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum