2012-04-06 3 views

Antwort

11

Die DataBinding schreibt normalerweise nicht den Wert, bis die Kontrolle beginnt, Fokus zu verlieren. Da Sie die TextBox programmatisch aktualisieren, weiß die DataBinding nicht, dass etwas zu aktualisieren ist.

txtLastModifyUserID.DataBindings.Add("Text", c_bsDataSetSource, "LastModifyUserID"); 
txtLastModifyUserID.Text = "1234"; 
txtLastModifyUserID.DataBindings[0].WriteValue(); 
+0

danke, es Arbeit ist, danke , hilfreich –

+0

danke, es ist Arbeit für mich –

0

Ich nehme an, Sie müssen OnPropertyChanged auf DataSourceUpdateMode angeben.

+0

Dank, aber es does't Arbeit, die Quelle onvalidation und rufen Sie dann DoValidate() nicht aktualisiert wird, kann ich auch versuchen, die DataSourceUpdateMode zu ändern, es funktioniert auch nicht –

0

Ich glaube, Sie sind fast da:

Die Art und Weise Sie Ihren Code geschrieben hat, würden Sie die WriteValue() Methode selbst (unter der Annahme, nur 1 Datenbindung existiert auf dem TextBox) anrufen. Ändern Sie einfach Ihre Bindung zu "Wert" statt "Text". Wenn Sie dies programmgesteuert ändern, sollte das menschliche Auge die Aktualisierung abfangen, solange die Datenquelle aktualisiert wird. Geben Sie auch DataSourceUpdateMode.OnPropertyChanged an.