Freigeben über


Gewusst wie: Implementieren einer Abhängigkeitseigenschaft

Aktualisiert: November 2007

Dieses Beispiel zeigt, wie Sie eine common language runtime (CLR)-Eigenschaft mit einem DependencyProperty-Feld unterstützen und auf diese Weise eine Abhängigkeitseigenschaft definieren. Wenn Sie Ihre eigenen Eigenschaften definieren und möchten, dass diese viele Aspekte der Windows Presentation Foundation (WPF)-Funktionalität unterstützen, zum Beispiel Stile, Datenbindung, Vererbung, Animation und Standardwerte, sollten Sie die Eigenschaften als Abhängigkeitseigenschaften implementieren.

Beispiel

Im folgenden Beispiel wird zuerst eine Abhängigkeitseigenschaft registriert, indem die Register-Methode aufgerufen wird. Der Name des Bezeichnerfelds, das Sie zum Speichern des Namens und der Merkmale der Abhängigkeitseigenschaft verwenden, muss der Name sein, den Sie für die Abhängigkeitseigenschaft als Teil des Register-Aufrufs gewählt haben. Daran muss das Zeichenfolgenliteral Property angehängt werden. Wenn Sie zum Beispiel eine Abhängigkeitseigenschaft mit dem NameLocation registrieren, muss das Bezeichnerfeld, das Sie für die Abhängigkeitseigenschaft definieren, den Namen LocationProperty haben.

In diesem Beispiel lautet der Name der Abhängigkeitseigenschaft und ihres CLR-Accessors State. Das Bezeichnerfeld ist StateProperty. Der Typ der Eigenschaft lautet Boolean, und der Typ, der die Abhängigkeitseigenschaft registriert, lautet MyStateControl.

Wenn Sie diese Konventionen der Namensgebung nicht befolgen, melden Designer Ihre Eigenschaft ggf. nicht richtig, und es kann sein, dass bestimmte Aspekte des Stilanwendungsmodus des Eigenschaftensystems sich nicht wie erwartet verhalten.

Sie können für eine Abhängigkeitseigenschaft auch Standardmetadaten angeben. Dieses Beispiel registriert den Standardwert der State Abhängigkeitseigenschaft als false.

public class MyStateControl : ButtonBase
{
  public MyStateControl() : base() { }
  public Boolean State
  {
    get { return (Boolean)this.GetValue(StateProperty); }
    set { this.SetValue(StateProperty, value); } 
  }
  public static readonly DependencyProperty StateProperty = DependencyProperty.Register(
    "State", typeof(Boolean), typeof(MyStateControl),new PropertyMetadata(false));
}

Das vollständige Beispiel finden Sie unter Beispiel für benutzerdefinierte Klassen mit Abhängigkeitseigenschaften.

Weitere Informationen dazu, wie und warum Sie eine Abhängigkeitseigenschaft implementieren sollten, anstatt eine CLR-Eigenschaft mit einem privaten Feld zu versehen, finden Sie unter Übersicht über Abhängigkeitseigenschaften.

Siehe auch

Konzepte

Übersicht über Abhängigkeitseigenschaften

Weitere Ressourcen

Gewusst-wie-Themen zu Eigenschaften

Beispiele für Eigenschaften