DependencyObject Třída

Definice

Představuje objekt, který je součástí systému vlastností závislosti.

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
Dědičnost
DependencyObject
Odvozené
Atributy

Příklady

Následující příklad je odvozen z DependencyObject pro vytvoření nové abstraktní třídy. Třída pak zaregistruje připojenou vlastnost a zahrne členy podpory pro danou připojenou vlastnost.

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

Poznámky

DependencyObjecttřída umožňuje Windows Presentation Foundation (WPF) systémové služby vlastností ve svých mnoha odvozených třídách.

Primární funkcí systému vlastností je vypočítat hodnoty vlastností a poskytnout systémové oznámení o hodnotách, které se změnily. Další klíčovou třídou, která je součástí systému vlastností, je DependencyProperty . DependencyProperty umožňuje registraci vlastností závislosti do systému vlastností a poskytuje identifikaci a informace o každé vlastnosti závislosti, zatímco DependencyObject jako základní třída umožňuje objektům používat vlastnosti závislosti.

DependencyObject mezi služby a vlastnosti patří následující:

  • Podpora hostování vlastností závislosti. Vlastnost závislosti zaregistrujete voláním Register metody a uložíte návratovou hodnotu metody jako veřejné statické pole ve vaší třídě.

  • Přidružená podpora hostování vlastností. Připojenou vlastnost zaregistrujete voláním RegisterAttached metody a uložíte návratovou hodnotu metody jako veřejné statické pole jen pro čtení ve vaší třídě. (Existují i další požadavky na členy. Všimněte si, že to představuje implementaci konkrétního WPF pro připojené vlastnosti. Podrobnosti najdete v tématu Přehled připojených vlastností.) Připojenou vlastnost lze následně nastavit na jakékoli třídě, která je odvozena z DependencyObject .

  • Získání, nastavení a vymazání metod nástrojů pro hodnoty všech vlastností závislosti, které existují na DependencyObject .

  • Metadata, podpora s podporou hodnot, oznámení o změně vlastnosti, přepisování zpětných volání pro vlastnosti závislosti nebo připojené vlastnosti. DependencyObjectTřída také usnadňuje metadata vlastností jednotlivých vlastníků pro vlastnost závislosti.

  • Společná základní třída pro třídy odvozené z ContentElement , Freezable nebo Visual . ( UIElement , další základní třída elementu, má hierarchii tříd, která zahrnuje Visual .)

Konstruktory

DependencyObject()

Inicializuje novou instanci DependencyObject třídy.

Vlastnosti

DependencyObjectType

Získá DependencyObjectType , který zabalí typ CLR této instance.

Dispatcher

Získá Dispatcher přidružený k DispatcherObject .

(Zděděno od DispatcherObject)
IsSealed

Načte hodnotu, která označuje, jestli je tato instance aktuálně zapečetěná (jen pro čtení).

Metody

CheckAccess()

Určuje, zda má volající vlákno přístup DispatcherObject .

(Zděděno od DispatcherObject)
ClearValue(DependencyProperty)

Vymaže místní hodnotu vlastnosti. Vlastnost, která má být vyčištěna, je určena DependencyProperty identifikátorem.

ClearValue(DependencyPropertyKey)

Vymaže místní hodnotu vlastnosti jen pro čtení. Vlastnost, která má být vymazána, je určena parametrem DependencyPropertyKey .

CoerceValue(DependencyProperty)

Převede hodnotu zadané vlastnosti závislosti. To se provádí vyvoláním jakékoli CoerceValueCallback funkce určené v metadatech vlastnosti pro vlastnost závislosti, protože existuje při volání DependencyObject .

Equals(Object)

Určuje, zda je poskytnutý DependencyObject ekvivalent aktuální DependencyObject .

GetHashCode()

Získá kód hodnoty hash DependencyObject .

GetLocalValueEnumerator()

Vytvoří specializovaný enumerátor pro zjištění, které vlastnosti závislosti mají lokálně nastavené hodnoty DependencyObject .

GetType()

Získá Type aktuální instanci.

(Zděděno od Object)
GetValue(DependencyProperty)

Vrátí aktuální platnou hodnotu vlastnosti závislosti v této instanci DependencyObject .

InvalidateProperty(DependencyProperty)

Znovu vyhodnotí platnou hodnotu pro zadanou vlastnost závislosti.

MemberwiseClone()

Vytvoří kopii aktuálního seznamu Object .

(Zděděno od Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Vyvolá se vždy, když byla aktualizována skutečná hodnota jakékoli vlastnosti závislosti DependencyObject . Konkrétní vlastnost závislosti, která se změnila, je uvedena v datech události.

ReadLocalValue(DependencyProperty)

Vrátí místní hodnotu vlastnosti závislosti, pokud existuje.

SetCurrentValue(DependencyProperty, Object)

Nastaví hodnotu vlastnosti závislosti beze změny jejího zdroje hodnoty.

SetValue(DependencyProperty, Object)

Nastaví místní hodnotu vlastnosti závislosti určenou identifikátorem vlastnosti závislosti.

SetValue(DependencyPropertyKey, Object)

Nastaví místní hodnotu vlastnosti závislosti jen pro čtení určenou DependencyPropertyKey identifikátorem vlastnosti závislosti.

ShouldSerializeProperty(DependencyProperty)

Vrátí hodnotu, která označuje, zda mají procesy serializace serializovat hodnotu pro poskytnutou vlastnost závislosti.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
VerifyAccess()

Vynutilo, aby volající vlákno měl přístup DispatcherObject .

(Zděděno od DispatcherObject)

Platí pro

Viz také