Прочитать на английском

Поделиться через


DependencyObject Класс

Определение

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

C#
public class DependencyObject : System.Windows.Threading.DispatcherObject
C#
[System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))]
public class DependencyObject : System.Windows.Threading.DispatcherObject
Наследование
DependencyObject
Производный
Атрибуты

Примеры

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

C#
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)
    );
}

Комментарии

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

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

DependencyObject службы и характеристики включают следующие:

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

  • Поддержка размещения присоединенных свойств. Присоединенное свойство регистрируется путем вызова RegisterAttached метода и сохранения возвращаемого значения метода в качестве открытого статического поля только для чтения в классе. (Существуют также дополнительные требования к членам; обратите внимание, что это представляет конкретную реализацию WPF для присоединенных свойств. Дополнительные сведения см. в разделе "Общие сведения о присоединенных свойствах".) Затем присоединенное свойство можно задать для любого класса, наследуемого от 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)

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

Продукт Версии
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7

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