OnPropertyChanged

19/07/2008 - 21:49 von Wojtek Kusch | Report spam
Hallo!
Ich habe eine Klasse MyDate. Ich konvertiere ein "normales" Datum und
speichere das Konvertierte in einer Instanz der Klasse MyDate.
Mit jeder Änderung soll ein Event ausgelöst werden, damit meine WPF-GUI
(Binding an den Cotainer DateContainer) aktualisiert wird.
Aber es funktioniert nicht, bei Änderungen ist PropertyChanged immer
null. War das Property "MyDate" noch al string defininert hat es
funktioniert. Es wird wohl so sein, dass das Objekt "myDate" immer das
gleiche bleibt, nur dass sich sein Inhalt àndert und deswegen wird das
Event nicht ausgelöst. Aber ich möchte es gerne ;)
Wie kann ich das erreichen?
Vielen Dank für die Hilfe!
Wojtek



class DateContainer : INotifyPropertyChanged
{
private DateTime gregorianDate;
public DateTime GregorianDate
{
get { return gregorianDate; }
set
{
gregorianDate = value;
MyDate = converter.Convert(gregorianDate);
OnPropertyChanged("GregorianDate");
}
}

private MyDate myDate;
public MyDate MyDate
{
get { return myDate; }
set
{
myDate= value;
OnPropertyChanged("MyDate ");
}
}


protected void OnPropertyChanged(string name)
{

PropertyChangedEventHandler handler = PropertyChanged;

if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}

}
 

Lesen sie die antworten

#1 Frank Dzaebel
19/07/2008 - 23:12 | Warnen spam
Hallo Wojtek,

Aber es funktioniert nicht, bei Änderungen ist PropertyChanged immer null.
[...] class DateContainer : INotifyPropertyChanged
{



es fehlt in Deiner Klasse die Definition des
PropertyChanged-Events (kann eigenlich gar nicht
kompilieren), der "converter" und "MyDate"
sind uns unbekannt (vielleicht liegen da Ursachen).
Ansonsten ja im Prinzip ok, etwa wie:

[WPF ObservableCollection und INotifyCollectionChanged]
http://dzaebel.net/WpfObservable.htm


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen