raptor trx
Lt. Junior Grade
- Registriert
- Mai 2006
- Beiträge
- 294
Hi@all,
ich kämpfe schon seit Tagen mit einem Problem bei der Datenbindung von Comboboxen in Windows Forms.
in einem Dialog bearbeite ich einen Artikel, dessen Klassendefinition wie folgt aussieht:
Über ein DropDown kann die Artikelgruppe des Artikel gesetzt werden (die ItemGroup Eigenschaft der Klasse Item).
Beim Laden des Dialogs fülle ich die ComboBox:
Dann führe ich die Datenbindung aus:
Das funktioniert soweit alles wie es soll. Das letzte Argument der DataBindings.Add() Methode sorgt dafür, dass wenn im Artikel keine ArtikelGruppe gesetzt ist, da ein Wert aus der Artikelgruppenliste (itemGroupCollection) genommen wird bei dem der Boolsche Wert "Standard" auf true gesetzt ist. Das funktioniert soweit auch. Also wenn ich in dem Dialog einen Artikel öffne bei dem die Eigenschaft ItemGroup null ist, wird in der ComboBox die Artikelgruppe ausgewäht bei der das "Standard" Flag true ist. Soweit ganz gut, aber wenn ich den Artikel speichern möchte soll die in der Combobox ausgewählte Artikelgruppe im Artikel gesetzt werden, das funktioniert aber nur wenn diese nicht die "Standard" Gruppe ist. Also beißt es sich irgenwie mit dem nullValue in der Bindung.
Wie kann ich den Wert der Combobox trotzdem überhmen auch wenn dieser über das nullValue gesetzt wurde?
Gruß
ich kämpfe schon seit Tagen mit einem Problem bei der Datenbindung von Comboboxen in Windows Forms.
in einem Dialog bearbeite ich einen Artikel, dessen Klassendefinition wie folgt aussieht:
Code:
public partial class Item
{
.
.
public Nullable<System.Guid> ItemGroupId { get; set; }
public virtual ItemGroup ItemGroup { get; set; }
.
.
.
}
Über ein DropDown kann die Artikelgruppe des Artikel gesetzt werden (die ItemGroup Eigenschaft der Klasse Item).
Beim Laden des Dialogs fülle ich die ComboBox:
Code:
private void FillComboboxes()
{
this.itemGroupCollection = this.itemGroupBussines.GetItemGroupCollection().ToList();
this.cboItemGroup.DisplayMember = "Name";
this.cboItemGroup.ValueMember = "ItemGroup";
this.cboItemGroup.DataSource = this.itemGroupCollection;
}
Dann führe ich die Datenbindung aus:
Code:
private void DataBinding()
{
this.cboItemGroup.DataBindings.Clear();
this.cboItemGroup.DataBindings.Add("SelectedItem", this.Item, "ItemGroup", false, DataSourceUpdateMode.OnValidation, this.itemGroupCollection.FirstOrDefault(x => x.Standard.HasValue && x.Standard.Value));
}
Das funktioniert soweit alles wie es soll. Das letzte Argument der DataBindings.Add() Methode sorgt dafür, dass wenn im Artikel keine ArtikelGruppe gesetzt ist, da ein Wert aus der Artikelgruppenliste (itemGroupCollection) genommen wird bei dem der Boolsche Wert "Standard" auf true gesetzt ist. Das funktioniert soweit auch. Also wenn ich in dem Dialog einen Artikel öffne bei dem die Eigenschaft ItemGroup null ist, wird in der ComboBox die Artikelgruppe ausgewäht bei der das "Standard" Flag true ist. Soweit ganz gut, aber wenn ich den Artikel speichern möchte soll die in der Combobox ausgewählte Artikelgruppe im Artikel gesetzt werden, das funktioniert aber nur wenn diese nicht die "Standard" Gruppe ist. Also beißt es sich irgenwie mit dem nullValue in der Bindung.
Wie kann ich den Wert der Combobox trotzdem überhmen auch wenn dieser über das nullValue gesetzt wurde?
Gruß