Announcement

Collapse
No announcement yet.

ComboBox mit Suchliste und Handeingabe

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ComboBox mit Suchliste und Handeingabe

    Hallo zusammen,

    habe ein kleines Problem mit den DataBindings in Bezug auf die ComboBox in WindowsForms.
    Habe eine Tabelle bei welcher sich zwei Felder auf eine zweite Tabelle verweisen. Da diese in Ausnahme Fällen jedoch auch aus Handeingaben bestehen sollen benötige ich beide Felder in dieser Tabelle.

    Also habe ich zwei ComboBoxen die als DataSource auf die zweite Tabelle mit dem jeweiligen Feld verweisen. Wenn ich bei Databinding <I>"Selected Value"</I> wähle funktioniert die Datenanzeige einwandfrei, aber Handeingaben werden beim abspeichern ignoriert. Deswegen wollte ich die das DataBinding an <I>"Text"</I> hängen. Hierbei kommt es jedoch wenn ich zwischen den Datensätzen der ZielTabelle über
    <PRE>this.BindingContext[objLNrData,"MyTable"].Position = (this.BindingContext[objLNrData,"MyTable"].Position + 1);</PRE>
    und
    <PRE>this.BindingContext[objLNrData,"MyTable"].Position = (this.BindingContext[objLNrData,"MyTable"].Position - 1);</PRE>
    hin und her scolle, zu dem Phenomen, daß eine der beiden Boxen sich nicht immer aktualisiert.

    Eine Überlegung wäre noch das DataBinding in dem Fall der Handeingabe auf Text umzustellen. Aber prinzipiell scheint mir das ein Bug zu sein , denn ich konnte ihn in einem anderen Fenster nachvollziehen. Vermutlich liegt es an dieser Doppelbindung zwischen den beiden Tabellen!

    Hier noch die Datenanbindung an die ComboBoxen:
    <PRE>this.cbKstAbteilung.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.objLNrData, "MyTable.MyForeinField1"));
    this.cbKstAbteilung.DataSource = this.objLNrData.MyTable2;
    this.cbKstAbteilung.DisplayMember = "MyField1";
    this.cbKstAbteilung.ValueMember = "MyField1";</PRE>

    <PRE>this.cbKstKontoNr.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.objLNrData, "MyTable.MyForeinField2"));
    this.cbKstKontoNr.DataSource = this.objLNrData.MyTable2;
    this.cbKstKontoNr.DisplayMember = "MyField2";
    this.cbKstKontoNr.ValueMember = "MyField2";</PRE>

  • #2
    Hallo,

    Problem gelöst. Kam durch unterschiedliche Datentypen der Quell und Zielzeile

    Comment

    Working...
    X