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


DependencyPropertyKey Класс

Определение

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

public ref class DependencyPropertyKey sealed
public sealed class DependencyPropertyKey
type DependencyPropertyKey = class
Public NotInheritable Class DependencyPropertyKey
Наследование
DependencyPropertyKey

Примеры

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

internal static readonly DependencyPropertyKey AquariumSizeKey = DependencyProperty.RegisterReadOnly(
  "AquariumSize",
  typeof(double),
  typeof(Aquarium),
  new PropertyMetadata(double.NaN)
);
public static readonly DependencyProperty AquariumSizeProperty =
  AquariumSizeKey.DependencyProperty;
public double AquariumSize
{
  get { return (double)GetValue(AquariumSizeProperty); }
}
Friend Shared ReadOnly AquariumSizeKey As DependencyPropertyKey = DependencyProperty.RegisterReadOnly("AquariumSize", GetType(Double), GetType(Aquarium), New PropertyMetadata(Double.NaN))
Public Shared ReadOnly AquariumSizeProperty As DependencyProperty = AquariumSizeKey.DependencyProperty
Public ReadOnly Property AquariumSize() As Double
    Get
        Return CDbl(GetValue(AquariumSizeProperty))
    End Get
End Property

Комментарии

DependencyPropertyKey экземпляры получаются в качестве возвращаемого значения вызова регистрации свойства зависимости с помощью методов RegisterReadOnly или RegisterAttachedReadOnly.

Типы, которые регистрируют свойство зависимостей, могут использовать DependencyPropertyKey в вызовах SetValue и ClearValue, которые корректируют значение свойства в рамках логики класса. Если разрешен уровень доступа ключа, связанные классы также могут использовать ключ и свойство зависимостей. Например, ключ можно объявить внутренним, а другие типы в той же сборке также могут задать это свойство зависимостей.

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

Вместо того чтобы предоставлять сам ключ, вместо этого следует предоставить DependencyProperty значение DependencyPropertyKey в качестве public static readonlyDependencyProperty в классе. Это позволяет свойству возвращать допустимый идентификатор свойства зависимостей для определенных операций системы свойств, таких как перечисление локальных значений. Однако идентификатор, полученный таким образом, не имеет полных возможностей DependencyProperty для многих операций системы свойств.

Свойства

DependencyProperty

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

Методы

Equals(Object)

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

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

Служит хэш-функцией по умолчанию.

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

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

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

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

(Унаследовано от Object)
OverrideMetadata(Type, PropertyMetadata)

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

ToString()

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

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

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

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