DependencyObject Klasse

Definition

Stellt ein Objekt dar, das im Abhängigkeitseigenschaftensystem 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

Das folgende Beispiel wird von DependencyObject abgeleitet, um eine neue abstrakte Klasse zu erstellen. 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 aktiviert Windows Presentation Foundation -Eigenschaftensystemdienste (WPF) für die vielen abgeleiteten Klassen.

Die primäre Funktion des Eigenschaftensystems besteht darin, die Werte von Eigenschaften zu berechnen und Systembenachrichtigungen über geänderte Werte bereitzustellen. Eine weitere Schlüsselklasse, die am Eigenschaftensystem beteiligt ist, 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 Diensten und Merkmalen gehören:

  • Unterstützung für das Hosten von Abhängigkeitseigenschaften. 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 das Hosting angefügter Eigenschaften. 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. Weitere Informationen finden Sie unter Übersicht über angefügte Eigenschaften.) Ihre angefügte Eigenschaft kann dann für jede Klasse festgelegt werden, die von DependencyObjectabgeleitet wird.

  • Abrufen, Festlegen und Löschen von Hilfsmethoden für Werte beliebiger Abhängigkeitseigenschaften, die für vorhanden DependencyObjectsind.

  • Metadaten, Unterstützung von Coerce-Werten, Benachrichtigung über Eigenschaftsänderungen und Überschreiben von Rückrufen für Abhängigkeitseigenschaften oder angefügte Eigenschaften. Darüber hinaus erleichtert die DependencyObject -Klasse die Metadaten pro Besitzer für eine Abhängigkeitseigenschaft.

  • Eine allgemeine Basisklasse für Klassen, die von , Freezableoder Visualabgeleitet werdenContentElement. (UIElement, eine weitere Basiselementklasse, verfügt über eine Klassenhierarchie, die . Visual)

Konstruktoren

DependencyObject()

Initialisiert eine neue Instanz der DependencyObject-Klasse.

Eigenschaften

DependencyObjectType

Ruft den ab, der DependencyObjectType den CLR-Typ dieser Instanz umschließt.

Dispatcher

Ruft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist.

(Geerbt von DispatcherObject)
IsSealed

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

Methoden

CheckAccess()

Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann.

(Geerbt von DispatcherObject)
ClearValue(DependencyProperty)

Löscht den lokalen Wert einer Eigenschaft. Die Eigenschaft, deren Wert gelöscht werden soll, wird durch einen DependencyProperty-Bezeichner angegeben.

ClearValue(DependencyPropertyKey)

Löscht den lokalen Wert einer schreibgeschützten Eigenschaft. Die Eigenschaft, deren Wert gelöscht werden soll, wird durch einen DependencyPropertyKey angegeben.

CoerceValue(DependencyProperty)

Erzwingt den Wert der angegebenen Abhängigkeitseigenschaft. Dies erfolgt durch den Aufruf einer beliebigen CoerceValueCallback-Funktion, die in den Metadaten für die Abhängigkeitseigenschaft angegeben ist, während sie beim aufrufenden DependencyObject beendet wird.

Equals(Object)

Bestimmt, ob ein angegebenes DependencyObject dem aktuellen DependencyObject entspricht.

GetHashCode()

Ruft einen Hashcode für diese DependencyObject ab.

GetLocalValueEnumerator()

Erstellt einen spezialisierten Enumerator, mit dem bestimmt wird, welche Abhängigkeitseigenschaften dieses DependencyObject über lokal festgelegte Werte verfügen.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
GetValue(DependencyProperty)

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

InvalidateProperty(DependencyProperty)

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

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Wird immer dann aufgerufen, wenn der effektive Wert einer Abhängigkeitseigenschaft für dieses DependencyObject aktualisiert wurde. Welche spezifische Abhängigkeitseigenschaft geändert wird, wird in den Ereignisdaten gemeldet.

ReadLocalValue(DependencyProperty)

Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, wenn dieser vorhanden ist.

SetCurrentValue(DependencyProperty, Object)

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

SetValue(DependencyProperty, Object)

Legt den lokalen Wert einer Abhängigkeitseigenschaft fest, die durch ihren Bezeichner angegeben ist.

SetValue(DependencyPropertyKey, Object)

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

ShouldSerializeProperty(DependencyProperty)

Gibt einen Wert zurück, der angibt, ob Serialisierungsprozesse den Wert der bereitgestellten Abhängigkeitseigenschaft serialisieren sollen.

ToString()

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

(Geerbt von Object)
VerifyAccess()

Erzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann.

(Geerbt von DispatcherObject)

Gilt für:

Weitere Informationen