DependencyObject Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- 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) |