DependencyProperty.ReadOnly Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает значение, указывающее, является ли свойство зависимостей, определяемое этим DependencyProperty экземпляром, свойством зависимостей только для чтения.
public:
property bool ReadOnly { bool get(); };
public bool ReadOnly { get; }
member this.ReadOnly : bool
Public ReadOnly Property ReadOnly As Boolean
Значение свойства
true Значение , если свойство зависимостей доступно только для чтения; falseв противном случае .
Примеры
В следующем примере получены метаданные по умолчанию и свойства идентификатора свойства зависимостей из различных полей свойств зависимостей и используются сведения для заполнения таблицы для реализации браузера метаданных.
pm = dp.GetMetadata(dp.OwnerType);
MetadataClass.Text = pm.GetType().Name;
TypeofPropertyValue.Text = dp.PropertyType.Name;
DefaultPropertyValue.Text = (pm.DefaultValue!=null) ? pm.DefaultValue.ToString() : "null";
HasCoerceValue.Text = (pm.CoerceValueCallback == null) ? "No" : pm.CoerceValueCallback.Method.Name;
HasPropertyChanged.Text = (pm.PropertyChangedCallback == null) ? "No" : pm.PropertyChangedCallback.Method.Name;
ReadOnly.Text = (dp.ReadOnly) ? "Yes" : "No";
pm = dp.GetMetadata(dp.OwnerType)
MetadataClass.Text = pm.GetType().Name
TypeofPropertyValue.Text = dp.PropertyType.Name
DefaultPropertyValue.Text = If((pm.DefaultValue IsNot Nothing), pm.DefaultValue.ToString(), "null")
HasCoerceValue.Text = If((pm.CoerceValueCallback Is Nothing), "No", pm.CoerceValueCallback.Method.Name)
HasPropertyChanged.Text = If((pm.PropertyChangedCallback Is Nothing), "No", pm.PropertyChangedCallback.Method.Name)
[ReadOnly].Text = If((dp.ReadOnly), "Yes", "No")
Комментарии
Свойства зависимостей только для чтения регистрируются в системе свойств путем вызова RegisterReadOnly метода в отличие от Register метода. Присоединенные свойства также можно зарегистрировать как доступные только для чтения; см. раздел RegisterAttachedReadOnly.
Свойства зависимостей только для чтения требуют DependencyPropertyKey идентификатора DependencyProperty , а не идентификатора для выполнения операций метаданных, таких как переопределение метаданных или установка значения. Если вы получили коллекцию DependencyProperty идентификаторов с помощью вызова GetLocalValueEnumerator или другого API, предоставляющего идентификаторы, проверьте ReadOnly значение перед попыткой вызова SetValue или OverrideMetadata использования этого идентификатора свойства зависимостей в качестве входного параметра, чтобы убедиться, что свойство зависимости представляется не только для чтения. Если значение ReadOnly находится true в свойстве зависимостей, для вызова свойства зависимости только для чтения не существует программного способа получить ссылку на DependencyPropertyKey идентификатор этого свойства зависимостей, из метаданных или из DependencyProperty идентификатора; идентификатор должен быть доступен как статическое поле для вызова SetValue(DependencyPropertyKey, Object) свойства зависимостей только для чтения.
При создании настраиваемого свойства зависимостей и регистрации его только для чтения необходимо определить только метод доступа для свойства оболочки СРЕДЫ CLR. В противном случае класс будет иметь запутанную объектную модель для оболочки свойств по сравнению с доступом к свойству резервной зависимости. Дополнительные сведения см. в разделе "Настраиваемые свойства зависимостей " или Read-Only свойства зависимостей.