Abhängigkeitseigenschaft
Eintrag zuletzt aktualisiert am: 17.01.2007
Abhängigkeitseigenschaften (Dependency Properties) sind eine in
.NET 3.0 eingeführte erweiterte Form des normalen Property-Konzeptes. Eine Abhängigkeitseigenschaft besteht vordergründig aus einem normalen Property. Im Hintergrund liegt aber nicht wie sonst ein einfaches privates Feld (field), sondern Instanz der Klasse DependencyProperty, die von dem Eigenschaftssystem der jeweiligen Umgebung verwaltet wird.
Diese Verwaltung ist die Voraussetzung viele deklarative Möglichkeiten in XAML, insbesondere für
Datenbindung, Vorlagen und Animationen. Microsoft hat sich laut eigener Aussage in
WPF bemüht, möglichst viele Funktionen durch
Attribute anstatt von
Methoden auszurücken, um die deklarative Programmierung zu fördern. Laut Aussage von Microsoft komprimiert das Eigenschaftssystem von
WPF intern die Abhängigkeitseigenschaften, um Speicher zu sparen.
Anders als die
Fields bei normalen Properties sollen die Datenspeicher der Abhängigkeitseigenschaf-ten nicht als private Mitglieder, sondern als öffentliche Mitglieder angelegt werden. Dies ist die Vor-aussetzung für das Funktionieren der
XAML Attached Property Syntax, widerspricht aber natürlich dem Kapselungsprinzip der
Objektorientierung. Per Konvention heißt der interne Teil einer Abhän-gigkeitseigenschaft wie der öffentliche Teil mit zusätzlichem Wort "Property".
Abhängigkeitseigenschaften gibt in
WPF und WF.
Beispiel für die Definition einer eigenen
WPF-Abhängigkeitseigenschaft mit Namen "Zaehler":
public static readonly DependencyProperty ZaehlerProperty = DependencyProper-ty.Register("Counter", typeof(int), typeof(F_Flugbuchung), new PropertyMetadata(0));
public int Zaehler
{
get { return (int)GetValue(ZaehlerProperty); }
set { SetValue(ZaehlerProperty, value); }
}