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 readonly
DependencyProperty в классе. Это позволяет свойству возвращать допустимый идентификатор свойства зависимостей для определенных операций системы свойств, таких как перечисление локальных значений. Однако идентификатор, полученный таким образом, не имеет полных возможностей DependencyProperty для многих операций системы свойств.
Свойства
DependencyProperty |
Возвращает идентификатор свойства зависимостей, связанный с этим специализированным идентификатором свойства зависимостей только для чтения. |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
OverrideMetadata(Type, PropertyMetadata) |
Переопределяет метаданные свойства зависимостей только для чтения, представленного этим идентификатором свойства зависимостей. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |