Forums Neueste Beiträge
 

WPF Databinding Refresh

01/05/2009 - 19:00 von Matthias | Report spam
Hallo zusammen,

Ich hab eine Klasse mit diversen Eigenschaften, die auf einem Formular
dargestellt werden sollen.
Im Formular hab ich eine Variable defniert, dass ein Objekt dieser
Klasse aufnehmen kann.
Ich will ich die Eigenschaften an die Steuerelemente auf dem Formular
binden. Das funktioniert soweit auch, wenn ich die Bindung erst
erzeuge, wenn die Variable ein Objekt enthàlt.
Erzeuge ich die Bindung aber solange die Variable noch null ist,
funktioniert das nicht. Wenn ich der Variable ein neues Objekt
zuweise, dann bleiben die Formular-Felder leer.
Jetzt fürchte ich, dass die Bindung jedesmal neu erzeugt werden muss,
wenn ein neues Objekt in der Variablen abgelegt wird.
Ich hab gelesen, dass das PropertyChanged-Ereignis unterstützt werden
muss. Die Eigenschaften in der Klasse tun das. Aber wenn ich das
Objekt "austausche", muss es doch möglich sein, dass die Bindung
automatisch die Eigenschaften des neuen Objektes im Formular anzeigt.
Was mach ich falsch?
 

Lesen sie die antworten

#1 Alexander Mueller
02/05/2009 - 11:11 | Warnen spam
Matthias schrieb:
Hallo zusammen,

Ich hab eine Klasse mit diversen Eigenschaften, die auf einem Formular
dargestellt werden sollen.
Im Formular hab ich eine Variable defniert, dass ein Objekt dieser
Klasse aufnehmen kann.
Ich will ich die Eigenschaften an die Steuerelemente auf dem Formular
binden. Das funktioniert soweit auch, wenn ich die Bindung erst
erzeuge, wenn die Variable ein Objekt enthàlt.
Erzeuge ich die Bindung aber solange die Variable noch null ist,
funktioniert das nicht. Wenn ich der Variable ein neues Objekt
zuweise, dann bleiben die Formular-Felder leer.
Jetzt fürchte ich, dass die Bindung jedesmal neu erzeugt werden muss,
wenn ein neues Objekt in der Variablen abgelegt wird.
Ich hab gelesen, dass das PropertyChanged-Ereignis unterstützt werden
muss. Die Eigenschaften in der Klasse tun das. Aber wenn ich das
Objekt "austausche", muss es doch möglich sein, dass die Bindung
automatisch die Eigenschaften des neuen Objektes im Formular anzeigt.
Was mach ich falsch?



INotifyPropertyChanged-Implementierung ist schon richtig, du musst
das Event aber auch im Setter der Property auslösen, wenn sich ein
Wert àndert. Die Implementierung der Schnittstelle alleine löst
noch nichts aus.

Ansonsten gibt es auch andere Modelle, Ihmo gibt es in XAML ein
IsAsync(hronous?)-Attribut, das angibt, dass die gebundenen Daten
nach dem ersten Laden der UI erst verzögert zur Verfügung stehen.
Bei Listen/Collections - ist aber eher für Grids oder ListViews
ein Thema - bieten sich ObservableCollections an, die das Notifying
von alleine auslösen.

MfG,
Alex

Ähnliche fragen