DependencyObject Klasse

Definition

Stellt ein Objekt dar, das am Abhängigkeitseigenschaftssystem teilnimmt.

public ref class DependencyObject : System::Windows::Threading::DispatcherObject
public class DependencyObject : System.Windows.Threading.DispatcherObject
[System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))]
public class DependencyObject : System.Windows.Threading.DispatcherObject
type DependencyObject = class
    inherit DispatcherObject
[<System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))>]
type DependencyObject = class
    inherit DispatcherObject
Public Class DependencyObject
Inherits DispatcherObject
Vererbung
DependencyObject
Abgeleitet
Attribute

Beispiele

Im folgenden Beispiel wird eine DependencyObject neue abstrakte Klasse erstellt. Die Klasse registriert dann eine angefügte Eigenschaft und enthält Unterstützungsmember für diese angefügte Eigenschaft.

public abstract class AquariumObject3 : DependencyObject
{
    public enum Bouyancy
    {
        Floats,
        Sinks,
        Drifts
    }
    public static readonly DependencyProperty BouyancyProperty = DependencyProperty.RegisterAttached(
      "Bouyancy",
      typeof(Bouyancy),
      typeof(AquariumObject3),
      new FrameworkPropertyMetadata(Bouyancy.Floats, FrameworkPropertyMetadataOptions.AffectsArrange),
      new ValidateValueCallback(ValidateBouyancy)
    );
    public static void SetBouyancy(UIElement element, Bouyancy value)
    {
        element.SetValue(BouyancyProperty, value);
    }
    public static Bouyancy GetBouyancy(UIElement element)
    {
        return (Bouyancy)element.GetValue(BouyancyProperty);
    }
    private static bool ValidateBouyancy(object value)
    {
        Bouyancy bTest = (Bouyancy) value;
        return (bTest == Bouyancy.Floats || bTest == Bouyancy.Drifts || bTest==Bouyancy.Sinks);
    }
    public static readonly DependencyProperty IsDirtyProperty = DependencyProperty.Register(
      "IsDirty",
      typeof(Boolean),
      typeof(AquariumObject3)
    );
}
Public MustInherit Class AquariumObject3
    Inherits DependencyObject
    Public Enum Bouyancy
        Floats
        Sinks
        Drifts
    End Enum
    Public Shared ReadOnly BouyancyProperty As DependencyProperty = DependencyProperty.RegisterAttached("Bouyancy", GetType(Bouyancy), GetType(AquariumObject3), New FrameworkPropertyMetadata(Bouyancy.Floats, FrameworkPropertyMetadataOptions.AffectsArrange), New ValidateValueCallback(AddressOf ValidateBouyancy))
    Public Shared Sub SetBouyancy(ByVal element As UIElement, ByVal value As Bouyancy)
        element.SetValue(BouyancyProperty, value)
    End Sub
    Public Shared Function GetBouyancy(ByVal element As UIElement) As Bouyancy
        Return CType(element.GetValue(BouyancyProperty), Bouyancy)
    End Function
    Private Shared Function ValidateBouyancy(ByVal value As Object) As Boolean
        Dim bTest As Bouyancy = CType(value, Bouyancy)
        Return (bTest = Bouyancy.Floats OrElse bTest = Bouyancy.Drifts OrElse bTest = Bouyancy.Sinks)
    End Function
    Public Shared ReadOnly IsDirtyProperty As DependencyProperty = DependencyProperty.Register("IsDirty", GetType(Boolean), GetType(AquariumObject3))
End Class

Hinweise

Die DependencyObject-Klasse ermöglicht Windows Presentation Foundation (WPF) Eigenschaftensystemdienste für die vielen abgeleiteten Klassen.

Die primäre Funktion des Eigenschaftensystems besteht darin, die Werte von Eigenschaften zu berechnen und systembenachrichtigungen zu Werten bereitzustellen, die geändert wurden. Eine weitere Schlüsselklasse, die am Eigenschaftensystem teilnimmt, ist DependencyProperty. DependencyProperty ermöglicht die Registrierung von Abhängigkeitseigenschaften im Eigenschaftensystem und stellt Identifikation und Informationen zu jeder Abhängigkeitseigenschaft bereit, während DependencyObject als Basisklasse Objekte die Abhängigkeitseigenschaften verwenden können.

DependencyObject zu den folgenden Diensten und Merkmalen gehören:

  • Unterstützung von Abhängigkeitseigenschaftshosting. Sie registrieren eine Abhängigkeitseigenschaft, indem Sie die Register Methode aufrufen und den Rückgabewert der Methode als öffentliches statisches Feld in Ihrer Klasse speichern.

  • Unterstützung für angefügte Eigenschaftenhosting. Sie registrieren eine angefügte Eigenschaft, indem Sie die RegisterAttached Methode aufrufen und den Rückgabewert der Methode als öffentliches statisches schreibgeschütztes Feld in Ihrer Klasse speichern. (Es gibt auch zusätzliche Memberanforderungen. Beachten Sie, dass dies eine WPF spezifische Implementierung für angefügte Eigenschaften darstellt. Ausführliche Informationen finden Sie unter Attached Properties Overview.) Ihre angefügte Eigenschaft kann dann für jede Klasse festgelegt werden, die von DependencyObject abgeleitet wird.

  • Dient zum Abrufen, Festlegen und Löschen von Hilfsmethoden für Werte von Abhängigkeitseigenschaften, die in der DependencyObjectDatei vorhanden sind.

  • Metadaten, Unterstützung des Koerzenwerts, Benachrichtigung über Eigenschaftsänderung und Außerkraftsetzen von Rückrufen für Abhängigkeitseigenschaften oder angefügte Eigenschaften. Außerdem erleichtert die DependencyObject Klasse die Metadaten pro Besitzer für eine Abhängigkeitseigenschaft.

  • Eine allgemeine Basisklasse für klassen, die von ContentElement, oder VisualFreezable. (UIElementeine andere Basiselementklasse verfügt über eine Klassenhierarchie, die Visual.)

Konstruktoren

Name Beschreibung
DependencyObject()

Initialisiert eine neue Instanz der DependencyObject-Klasse.

Eigenschaften

Name Beschreibung
DependencyObjectType

Ruft den DependencyObjectType CLR-Typ dieser Instanz ab.

Dispatcher

Ruft dies Dispatcher ab, dem dies DispatcherObject zugeordnet ist.

(Geerbt von DispatcherObject)
IsSealed

Ruft einen Wert ab, der angibt, ob diese Instanz aktuell versiegelt ist (schreibgeschützt).

Methoden

Name Beschreibung
CheckAccess()

Bestimmt, ob der aufrufende Thread Zugriff auf diesen DispatcherObjectThread hat.

(Geerbt von DispatcherObject)
ClearValue(DependencyProperty)

Löscht den lokalen Wert einer Eigenschaft. Die zu löschende Eigenschaft wird durch einen DependencyProperty Bezeichner angegeben.

ClearValue(DependencyPropertyKey)

Löscht den lokalen Wert einer schreibgeschützten Eigenschaft. Die zu löschende Eigenschaft wird durch eine DependencyPropertyKey.

CoerceValue(DependencyProperty)

Wandelt den Wert der angegebenen Abhängigkeitseigenschaft um. Dies wird erreicht, indem alle CoerceValueCallback in Eigenschaftsmetadaten für die Abhängigkeitseigenschaft angegebenen Funktionen aufgerufen werden, wie sie für den Aufruf DependencyObjectvorhanden sind.

Equals(Object)

Bestimmt, ob ein bereitgestelltes DependencyObject Element dem aktuellen DependencyObjectentspricht.

GetHashCode()

Ruft einen Hashcode für diese DependencyObjectab.

GetLocalValueEnumerator()

Erstellt einen speziellen Enumerator, um zu bestimmen, welche Abhängigkeitseigenschaften lokal festgelegte Werte für diese DependencyObjectEigenschaft haben.

GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
GetValue(DependencyProperty)

Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft für diese Instanz einer .DependencyObject

InvalidateProperty(DependencyProperty)

Wertet den effektiven Wert für die angegebene Abhängigkeitseigenschaft erneut aus.

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Wird immer aufgerufen, wenn der effektive Wert einer Abhängigkeitseigenschaft für diese DependencyObject Eigenschaft aktualisiert wurde. Die spezifische Abhängigkeitseigenschaft, die geändert wurde, wird in den Ereignisdaten gemeldet.

ReadLocalValue(DependencyProperty)

Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, sofern vorhanden.

SetCurrentValue(DependencyProperty, Object)

Legt den Wert einer Abhängigkeitseigenschaft fest, ohne die Wertquelle zu ändern.

SetValue(DependencyProperty, Object)

Legt den lokalen Wert einer Abhängigkeitseigenschaft fest, die durch den Bezeichner der Abhängigkeitseigenschaft angegeben wird.

SetValue(DependencyPropertyKey, Object)

Legt den lokalen Wert einer schreibgeschützten Abhängigkeitseigenschaft fest, die durch den DependencyPropertyKey Bezeichner der Abhängigkeitseigenschaft angegeben wird.

ShouldSerializeProperty(DependencyProperty)

Gibt einen Wert zurück, der angibt, ob Serialisierungsprozesse den Wert für die bereitgestellte Abhängigkeitseigenschaft serialisieren sollen.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
VerifyAccess()

Erzwingt, dass der aufrufende Thread Zugriff auf diesen DispatcherObjectThread hat.

(Geerbt von DispatcherObject)

Gilt für:

Weitere Informationen