Udostępnij za pośrednictwem


DependencyObject Klasa

Definicja

Reprezentuje obiekt, który uczestniczy w systemie właściwości zależności.

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
Dziedziczenie
DependencyObject
Pochodne
Atrybuty

Przykłady

Poniższy przykład pochodzi z DependencyObject , aby utworzyć nową klasę abstrakcyjną. Następnie klasa rejestruje dołączoną właściwość i zawiera elementy członkowskie obsługi dla tej dołączonej właściwości.

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

Uwagi

Klasa DependencyObject umożliwia Windows Presentation Foundation (WPF) usług systemu właściwości w wielu klasach pochodnych.

Podstawową funkcją systemu właściwości jest obliczenie wartości właściwości i dostarczenie powiadomienia systemowego o zmienionych wartościach. Inną kluczową klasą, która uczestniczy w systemie właściwości, jest DependencyProperty. DependencyProperty włącza rejestrację właściwości zależności w systemie właściwości i udostępnia informacje identyfikacyjne i informacje o każdej właściwości zależności, natomiast DependencyObject jako klasa bazowa umożliwia obiektom używanie właściwości zależności.

DependencyObject usługi i cechy obejmują następujące charakterystyki:

  • Obsługa hostowania właściwości zależności. Właściwość zależności należy zarejestrować, wywołując metodę i przechowując Register wartość zwracaną metody jako publiczne pole statyczne w klasie.

  • Obsługa hostingu dołączonych właściwości. Dołączoną właściwość należy zarejestrować, wywołując metodę i przechowując RegisterAttached wartość zwracaną metody jako publiczne statyczne pole tylko do odczytu w klasie. (Istnieją również dodatkowe wymagania członkowskie; należy pamiętać, że reprezentuje to implementację specyficzną dla WPF dla dołączonych właściwości. Aby uzyskać szczegółowe informacje, zobacz Omówienie dołączonych właściwości). Dołączoną właściwość można następnie ustawić na dowolnej klasie pochodzącej z klasy DependencyObject.

  • Pobierz, ustaw i wyczyść metody narzędzi dla wartości wszelkich właściwości zależności, które istnieją w obiekcie DependencyObject.

  • Obsługa metadanych, wartości coerce, powiadomienie o zmianie właściwości i zastępowanie wywołań zwrotnych dla właściwości zależności lub dołączonych właściwości. DependencyObject Ponadto klasa ułatwia metadane właściwości poszczególnych właścicieli dla właściwości zależności.

  • Typowa klasa bazowa dla klas pochodzących z ContentElementklasy , Freezablelub Visual. (UIElement, inna klasa elementu bazowego, ma hierarchię klas, która zawiera Visual.)

Konstruktory

DependencyObject()

Inicjuje nowe wystąpienie klasy DependencyObject.

Właściwości

DependencyObjectType

Pobiera klasę DependencyObjectType , która opakowuje typ CLR tego wystąpienia.

Dispatcher

Pobiera element, z Dispatcher który DispatcherObject jest skojarzony.

(Odziedziczone po DispatcherObject)
IsSealed

Pobiera wartość wskazującą, czy to wystąpienie jest obecnie zapieczętowane (tylko do odczytu).

Metody

CheckAccess()

Określa, czy wątek wywołujący ma dostęp do tego DispatcherObjectelementu .

(Odziedziczone po DispatcherObject)
ClearValue(DependencyProperty)

Czyści wartość lokalną właściwości. Właściwość do wyczyszczenia jest określana przez DependencyProperty identyfikator.

ClearValue(DependencyPropertyKey)

Czyści wartość lokalną właściwości tylko do odczytu. Właściwość do wyczyszczenia jest określana przez element DependencyPropertyKey.

CoerceValue(DependencyProperty)

Przekształca wartość określonej właściwości zależności. Jest to realizowane przez wywołanie dowolnej CoerceValueCallback funkcji określonej w metadanych właściwości dla właściwości zależności, ponieważ istnieje w wywołaniu DependencyObject.

Equals(Object)

Określa, czy podany DependencyObject element jest odpowiednikiem bieżącego DependencyObjectelementu .

GetHashCode()

Pobiera kod skrótu dla tego DependencyObjectpliku .

GetLocalValueEnumerator()

Tworzy wyspecjalizowany moduł wyliczający do określania, które właściwości zależności mają lokalnie ustawione wartości dla tego DependencyObjectelementu .

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
GetValue(DependencyProperty)

Zwraca bieżącą obowiązującą wartość właściwości zależności dla tego wystąpienia klasy DependencyObject.

InvalidateProperty(DependencyProperty)

Ponownie oblicza efektywną wartość dla określonej właściwości zależności.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Wywoływane za każdym razem, gdy zostanie zaktualizowana efektywna wartość dowolnej właściwości DependencyObject zależności. Określona właściwość zależności, która została zmieniona, jest zgłaszana w danych zdarzenia.

ReadLocalValue(DependencyProperty)

Zwraca wartość lokalną właściwości zależności, jeśli istnieje.

SetCurrentValue(DependencyProperty, Object)

Ustawia wartość właściwości zależności bez zmieniania jej źródła wartości.

SetValue(DependencyProperty, Object)

Ustawia wartość lokalną właściwości zależności określonej przez jej identyfikator właściwości zależności.

SetValue(DependencyPropertyKey, Object)

Ustawia wartość lokalną właściwości zależności tylko do odczytu określonej przez DependencyPropertyKey identyfikator właściwości zależności.

ShouldSerializeProperty(DependencyProperty)

Zwraca wartość wskazującą, czy procesy serializacji powinny serializować wartość dla podanej właściwości zależności.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
VerifyAccess()

Wymusza, że wątek wywołujący ma dostęp do tego DispatcherObjectelementu .

(Odziedziczone po DispatcherObject)

Dotyczy

Zobacz też