DependencyPropertyKey.DependencyProperty Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает идентификатор свойства зависимостей, связанный с этим специализированным идентификатором свойства зависимостей только для чтения.
public:
property System::Windows::DependencyProperty ^ DependencyProperty { System::Windows::DependencyProperty ^ get(); };
public System.Windows.DependencyProperty DependencyProperty { get; }
member this.DependencyProperty : System.Windows.DependencyProperty
Public ReadOnly Property DependencyProperty As DependencyProperty
Значение свойства
Соответствующий идентификатор свойства зависимостей.
Примеры
В следующем примере вызывается DependencyProperty для предоставления идентификатора DependencyProperty (AquariumGraphicProperty
) для свойства зависимости только для чтения AquariumGraphic
класса. В примере также показано создание DependencyPropertyKey (как внутренний элемент) и средство доступа для AquariumGraphic
.
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
Комментарии
Значение DependencyProperty позволяет идентификатору свойства только для чтения участвовать в общих операциях системы свойств, используя некоторые из одних и того же интерфейса, что и для свойств зависимостей чтения и записи.
Чтобы реализовать метод доступа к свойствам get для свойства зависимостей только для чтения, необходимо создать и предоставить идентификатор DependencyProperty в классе. Это служит двумя целями:
Собственный класс должен иметь идентификатор DependencyProperty, чтобы реализовать метод доступа для оболочки свойств. Вы используете DependencyProperty в качестве параметра для вызова GetValue, реализующего метод доступа.
DependencyProperty идентификаторы предоставляют свойство зависимостей системе свойств таким образом, чтобы другие методы, использующие метаданные, могли получить доступ к нему в стандартной форме. Например, если вы вызвали GetLocalValueEnumerator на некоторых DependencyObject и получили перечисление локальных свойств (значений и идентификаторов), идентификатор, возвращаемый для свойства зависимости только для чтения, будет вашим значением DependencyProperty вместо ключа. Не предоставляя идентификатор DependencyProperty, не повышает безопасность свойства зависимостей только для чтения, это просто делает операции, которые включают ваше свойство более неловко как для последующих производных классов, так и для экземпляров классов.
Чтобы предоставить идентификатор DependencyProperty в классе, вы вызываете DependencyProperty непосредственно на ключ. Используйте это значение для создания идентификатора public static readonly
DependencyProperty в классе, который параллельно DependencyPropertyKey.