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 возвращаемый регистрацией свойств зависимостей только для чтения, не следует делать открытым, так как предоставление ключа делает свойство настраиваемым, что не позволяет зарегистрировать его как свойство зависимостей только для чтения. Кроме того, предоставление ключа приводит к несоответствию между доступным поведением свойств зависимостей и реализацией оболочки свойств среды CLR, что является неправильным дизайном класса.

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

Свойства

DependencyProperty

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

Методы

Equals(Object)

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

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

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

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

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

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

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

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

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

ToString()

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

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

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

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