DependencyObject Класс

Определение

Представляет объект, участвующий в системе свойств зависимостей.

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
Наследование
DependencyObject
Производный
Атрибуты

Примеры

Следующий пример является производным от DependencyObject создания нового абстрактного класса. Затем класс регистрирует присоединенное свойство и включает элементы поддержки для этого присоединенного свойства.

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

Комментарии

Класс DependencyObject включает системные службы свойств Windows Presentation Foundation (WPF) во многих производных классах.

Основная функция системы свойств — вычислить значения свойств и предоставить системное уведомление о измененных значениях. Другим ключевым классом, участвующим в системе свойств, является DependencyProperty. DependencyProperty включает регистрацию свойств зависимостей в системе свойств и предоставляет идентификацию и сведения о каждом свойстве зависимостей, в то время как DependencyObject в качестве базового класса объекты могут использовать свойства зависимостей.

DependencyObject к службам и характеристикам относятся следующие:

  • Поддержка размещения свойств зависимостей. Вы регистрируете свойство зависимостей путем вызова Register метода и хранения возвращаемого значения метода в качестве общедоступного статического поля в классе.

  • Поддержка размещения присоединенного свойства. Вы регистрируете присоединенное свойство, вызывая RegisterAttached метод и сохраняя возвращаемое значение метода в качестве общедоступного статического поля только для чтения в классе. (Существуют также дополнительные требования к членам; обратите внимание, что это представляет собой WPF конкретную реализацию для присоединенных свойств. Дополнительные сведения см. в разделе Attached Properties Overview.) Затем присоединенное свойство можно задать на любом классе, наследуемом от DependencyObject.

  • Получение, установка и очистка методов служебной программы для значений всех свойств зависимостей, существующих в объекте DependencyObject.

  • Метаданные, поддержка принудительного значения, уведомление об изменении свойства и переопределение обратных вызовов для свойств зависимостей или присоединенных свойств. Кроме того, DependencyObject класс упрощает метаданные свойства каждого владельца для свойства зависимостей.

  • Общий базовый класс для классов, производных от ContentElement, Freezableили Visual. (UIElementдругой базовый класс элементов имеет иерархию классов, включающую Visual.)

Конструкторы

Имя Описание
DependencyObject()

Инициализирует новый экземпляр класса DependencyObject.

Свойства

Имя Описание
DependencyObjectType

Возвращает объект DependencyObjectType , который упаковывает тип СРЕДЫ CLR этого экземпляра.

Dispatcher

Dispatcher Возвращает это DispatcherObject значение, с которым связано.

(Унаследовано от DispatcherObject)
IsSealed

Возвращает значение, указывающее, запечатан ли этот экземпляр (только для чтения).

Методы

Имя Описание
CheckAccess()

Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)
ClearValue(DependencyProperty)

Очищает локальное значение свойства. Свойство для очистки указывается идентификатором DependencyProperty .

ClearValue(DependencyPropertyKey)

Очищает локальное значение свойства только для чтения. Свойство, которое необходимо очистить, задается параметром DependencyPropertyKey.

CoerceValue(DependencyProperty)

Принуждает значение указанного свойства зависимостей. Это достигается путем вызова любой CoerceValueCallback функции, указанной в метаданных свойств для свойства зависимостей, так как он существует при вызове DependencyObject.

Equals(Object)

Определяет, эквивалентен ли предоставленный DependencyObject объект текущему DependencyObject.

GetHashCode()

Получает хэш-код для этого DependencyObject.

GetLocalValueEnumerator()

Создает специализированный перечислитель для определения того, какие свойства зависимостей имеют локальные значения для этого DependencyObject.

GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
GetValue(DependencyProperty)

Возвращает текущее эффективное значение свойства зависимостей для этого экземпляра DependencyObject.

InvalidateProperty(DependencyProperty)

Повторно вычисляет эффективное значение для указанного свойства зависимостей.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Вызывается при каждом обновлении эффективного значения любого свойства DependencyObject зависимостей. Определенное свойство зависимостей, которое изменилось, сообщается в данных события.

ReadLocalValue(DependencyProperty)

Возвращает локальное значение свойства зависимостей, если оно существует.

SetCurrentValue(DependencyProperty, Object)

Задает значение свойства зависимостей, не изменяя его источник значений.

SetValue(DependencyProperty, Object)

Задает локальное значение свойства зависимостей, указанное его идентификатором свойства зависимостей.

SetValue(DependencyPropertyKey, Object)

Задает локальное значение свойства зависимостей только для чтения, указанное DependencyPropertyKey идентификатором свойства зависимости.

ShouldSerializeProperty(DependencyProperty)

Возвращает значение, указывающее, должны ли процессы сериализации сериализовать значение для указанного свойства зависимостей.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
VerifyAccess()

Принудительно применяет, что вызывающий поток имеет доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)

Применяется к

См. также раздел