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 класс должен иметь идентификатор для реализации метода доступа для оболочки свойства. Для вызова, реализующего метод доступа get, используется DependencyProperty в качестве параметра GetValue .
DependencyProperty идентификаторы предоставляют свойство зависимостей системе свойств таким образом, чтобы другие методы, использующие метаданные, могли получить к нему доступ в стандартной форме. Например, если вы вызвали GetLocalValueEnumerator некоторые DependencyObject и получили перечисление локально заданных свойств (значений и идентификаторов), то идентификатор, возвращаемый для свойства зависимостей только для чтения, будет вашим DependencyProperty значением, а не ключом. Не предоставляя DependencyProperty идентификатор, не повышает безопасность свойства зависимостей только для чтения, это просто делает операции, которые связаны со свойством более неловко как для последующих производных классов, так и для экземпляров классов.
Чтобы предоставить DependencyProperty идентификатор в классе, вызовите DependencyProperty его непосредственно в ключе. Используйте это значение для создания public static readonly
DependencyProperty идентификатора в классе, который параллелит DependencyPropertyKey.