Бөлісу құралы:


DependencyProperty.ReadOnly Свойство

Определение

Возвращает значение, указывающее, является ли свойство зависимостей, идентифицируемое данным экземпляром DependencyProperty, доступным только для чтения.

public:
 property bool ReadOnly { bool get(); };
public bool ReadOnly { get; }
member this.ReadOnly : bool
Public ReadOnly Property ReadOnly As Boolean

Значение свойства

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. В противном случае класс будет иметь запутанную объектную модель для оболочки свойства по сравнению с доступом к свойству резервной зависимости. Дополнительные сведения см. в разделе "Пользовательские свойства зависимостей " или "Свойства зависимостей только для чтения".

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

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