2017-07-24 1 views
0

mit einer Windows Forms App mit mehreren Feldern, die von Databindng aktualisiert werden sollen. Alle Felder sind im 'this' Teil enthalten und alle werden in den angehängten Etiketten angezeigt, nicht aber der [Baustellenname].C# WindowsForms Datenbindung aktualisiert nicht alle Felder

PropertyChanged?.Invoke(this, e); ScreenShoot one

Die Quelle mit zu arbeiten, ist:

public string BaustelleName 
    { 
     get { return string.IsNullOrEmpty(this.sName) ? null : sName; } 
     set 
     { 
      sName = value; 
      InvokePropertyChanged(new PropertyChangedEventArgs("BaustelleName")); 
     } 
    } 

    public string BaustelleZusatz 
    { 
     get { return string.IsNullOrEmpty(this.sZusatz) ? null : sZusatz; } 
     set 
     { 
      sZusatz = value; 
      InvokePropertyChanged(new PropertyChangedEventArgs("BaustelleZusatz")); 
     } 
    } 

...

protected void BindControls() 
    { 
     try 
     { 
      Binding bnd = null; 
      cBindung bnd_Helper = new cBindung(); 

      // txt_Baustelle ---------------------------------------------------------------------------- 
      parent.txt_Baustelle.DataBindings.Clear(); 
      bnd = new Binding("Text", this, "BaustelleNr", true, DataSourceUpdateMode.OnPropertyChanged); 
      parent.txt_Baustelle.DataBindings.Add(bnd); 

      //lbl_AdrBaustelle_Zl1.Text = adr.VornameName; ---------------------------------------------- 
      parent.lbl_AdrBaustelle_Zl1.DataBindings.Clear(); 
      bnd = new Binding("Text", this, "BaustelleName"); 
      parent.lbl_AdrKunde_Zl1.DataBindings.Add(bnd); 

      //lbl_AdrBaustelle_Zl2.Text = adr.Zusatz; --------------------------------------------------- 
      parent.lbl_AdrBaustelle_Zl2.DataBindings.Clear(); 
      bnd = new Binding("Text", this, "BaustelleZusatz"); 
      parent.lbl_AdrBaustelle_Zl2.DataBindings.Add(bnd);  //Zusatz 

...

public void InvokePropertyChanged(PropertyChangedEventArgs e) 
    { 
     PropertyChanged?.Invoke(this, e); 
    } 

... für andere Felder gleich. Ich habe festgestellt, dass der Getter für [Baustellenname] nevver aufgerufen wird, während alle anderen immer aufgerufen werden, wenn [InvokePropertyChanged] aufgerufen wird.

Was könnte falsch sein?

Antwort

0

Sie die Bindung an das falsche Etikett sind und fügte hinzu: Sie hinzufügen, es zu lbl_ArdKunde statt lbl_AdrBaustelle

//lbl_AdrBaustelle_Zl1.Text = adr.VornameName; --------------------------------------- 
    parent.lbl_AdrBaustelle_Zl1.DataBindings.Clear(); 
    bnd = new Binding("Text", this, "BaustelleName"); 
    parent.lbl_AdrKunde_Zl1.DataBindings.Add(bnd); 
+0

@ nicoYour'e rechts; Vielen Dank und Entschuldigung für diese blöde Frage. Wie wir auf Deutsch sagen: "Manchmal siehst du die Hand nicht vor deinen Augen" – pfotenh

Verwandte Themen