Ich wollte mir nun endlich mal WPF ein bisschen mehr aneignen und bin beim DataBinding hängen geblieben.
Googleergebnisse gab es da sehr viele, aber auch beinahe so viele verschiedene Ansätze.
Den Grundgedanken habe ich verstanden. wpftutorial.net/DataBindingOverview.html
Hier habe ich auch eine Klasse gefunden, deren Nutzung recht schick aussieht. codeproject.com/Articles/23487…perty-Dependencies-Part-I
Hat aber nicht so ganz geklappt. (Finde die Klasse an sich und die Nutzung aber wirklich sehr schick, mehr dazu weiter unten)
Nun hab ich so viele Möglichkeiten gefunden. Doch welche ist denn jetzt richtig/smart wenn ich einfach eine Property einer Klasse an ein Control binden will?
(z.B den Namen eines Tiers an ein Label)
Hier nochmal die Klasse, die ich auf codeproject gefunden habe.
Aufruf.
Googleergebnisse gab es da sehr viele, aber auch beinahe so viele verschiedene Ansätze.
Den Grundgedanken habe ich verstanden. wpftutorial.net/DataBindingOverview.html
Hier habe ich auch eine Klasse gefunden, deren Nutzung recht schick aussieht. codeproject.com/Articles/23487…perty-Dependencies-Part-I
Hat aber nicht so ganz geklappt. (Finde die Klasse an sich und die Nutzung aber wirklich sehr schick, mehr dazu weiter unten)
Nun hab ich so viele Möglichkeiten gefunden. Doch welche ist denn jetzt richtig/smart wenn ich einfach eine Property einer Klasse an ein Control binden will?
(z.B den Namen eines Tiers an ein Label)
Hier nochmal die Klasse, die ich auf codeproject gefunden habe.
Aufruf.
C#-Quellcode
- /// <summary>
- /// Stellt eine Klasse zum Verwalten von Klassenattributen dar
- /// </summary>
- /// <typeparam name="T"></typeparam>
- public class Property<T> : INotifyPropertyChanged
- {
- private T value;
- private bool changed = false;
- public Property() { }
- public Property(T value)
- {
- this.value = value;
- }
- public T Value { get { return value; }
- set
- {
- this.value = value;
- NotifyPropertyChanged("Value");
- Changed = true;
- }
- }
- public bool Changed { get { return changed; }
- set
- {
- changed = value;
- NotifyPropertyChanged("Changed");
- }
- }
- public void Commit() { Changed = false; }
- private void NotifyPropertyChanged(string propertyName)
- {
- if (PropertyChanged != null)
- PropertyChanged(this,
- new PropertyChangedEventArgs(propertyName));
- }
- public event PropertyChangedEventHandler PropertyChanged;
- }