Entwickler-Ecke
Basistechnologien - Property DataBinding Values refreshen?
Christoph1972 - Mi 04.08.10 19:29
Titel: Property DataBinding Values refreshen?
Hallo Leute,
ich möchte z.B. eine TextBox an ein Property binden. Könnte mir jemand einen Hinweis geben, wir ich die Daten in der TextBox aktualisiere?
Bisher sieht das so aus:
Hier ist die Klasse, an dessen Property ich binden möchte.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| public class BusinessObject :INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged;
private string _Name = ""; public string Name { get { return _Name; } set { _Name = value; if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("Name")); } } } |
So binde ich.
C#-Quelltext
1:
| textBox1.DataBindings.Add(new Binding("Text", business, "Name")); |
Mich würde nun interessieren, wie ich eine Aktualisierung mittels PropertyChangedEvent erzwingen kann.
Für Hinweise & Tipps bin ich wie immer Dankbar.
Christian S. - Mi 04.08.10 19:36
Die Aktualisierung müsste doch automatisch erfolgen, wenn die Eigenschaft geändert wird? :gruebel:
Ansonsten: Da Du Events nicht "von außen" feuern kannst, müsstest Du ansonsten eine Methode schreiben:
C#-Quelltext
1: 2: 3: 4: 5:
| public void RaisePropertyChanged(string PropertyName) { var tmp = PropertyChanged; if (tmp != null) tmp(this, new PropertyChangedEventArgs(PropertyName)); } |
Christoph1972 - Mi 04.08.10 21:57
Hi,
das Event ist kein Problem, wenn ich das Property ändere wird es ausgelöst, die TextBox wird jedoch nicht aktualisiert. Auch in die andere Richtung funktioniert es nicht, also wenn der Text in der TB geändert wird, wird der Set Block nicht angesprochen.
Habe ich den hier alles korrekt??
C#-Quelltext
1:
| textBox1.DataBindings.Add(new Binding("Text", business, "Name")) |
Christian S. - Mi 04.08.10 22:05
Du kannst mal einen der überladenen Konstruktoren der Binding-Klasse verwenden, in welchem man explizit den DataSourceUpdateMode setzen kann. Mit dem kannst Du regeln, wann Änderungen im Control in die Property "geschoben" werden.
Christoph1972 - Mi 04.08.10 22:48
Ok, danke für heute! Ich werde es mir morgen mal weiter anschauen.
Christoph1972 - Do 05.08.10 06:53
Vielen Dank für deine Hilfe!
C#-Quelltext
1:
| textBox1.DataBindings.Add(new Binding("Text", business, "Name",false ,DataSourceUpdateMode.OnPropertyChanged )) |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!