DependencyObject Класс

Определение

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

public ref class DependencyObject : System::Windows::Threading::DispatcherObject
[System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))]
public class DependencyObject : System.Windows.Threading.DispatcherObject
public class DependencyObject : System.Windows.Threading.DispatcherObject
[<System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))>]
type DependencyObject = class
    inherit DispatcherObject
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 для присоединенных свойств. Дополнительные сведения см. в разделе Общие сведения о вложенных свойствах.) Затем присоединенное свойство можно задать для любого класса, производного от DependencyObject .

  • Методы Get, Set и Clear для значений всех свойств зависимостей, существующих в 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)

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

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