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 свойства зависимостей.

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

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