DependencyProperty.RegisterReadOnly Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Регистрирует свойство зависимостей в качестве свойства зависимостей только для чтения.
Перегрузки
| Имя | Описание |
|---|---|
| RegisterReadOnly(String, Type, Type, PropertyMetadata) |
Регистрирует свойство зависимости только для чтения с указанным типом свойств, типом владельца и метаданными свойств. |
| RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback) |
Регистрирует свойство зависимости только для чтения с указанным типом свойства, типом владельца, метаданными свойства и обратным вызовом проверки. |
RegisterReadOnly(String, Type, Type, PropertyMetadata)
Регистрирует свойство зависимости только для чтения с указанным типом свойств, типом владельца и метаданными свойств.
public:
static System::Windows::DependencyPropertyKey ^ RegisterReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ typeMetadata);
public static System.Windows.DependencyPropertyKey RegisterReadOnly(string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata typeMetadata);
static member RegisterReadOnly : string * Type * Type * System.Windows.PropertyMetadata -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterReadOnly (name As String, propertyType As Type, ownerType As Type, typeMetadata As PropertyMetadata) As DependencyPropertyKey
Параметры
- name
- String
Имя свойства зависимостей для регистрации.
- propertyType
- Type
Тип свойства.
- ownerType
- Type
Тип владельца, регистрирующий свойство зависимостей.
- typeMetadata
- PropertyMetadata
Метаданные свойства для свойства зависимостей.
Возвращаемое значение
Ключ свойства зависимости, который следует использовать для задания значения статического поля только для чтения в классе, который затем используется для ссылки на свойство зависимости.
Примеры
В следующем примере свойство зависимостей регистрируется AquariumSize как доступное только для чтения. В примере определяется AquariumSizeKey как внутренний ключ (чтобы другие классы в сборке могли переопределить метаданные) и предоставляет идентификатор свойства зависимостей на основе этого ключа как AquariumSizeProperty. Кроме того, оболочка создается только для AquariumSizeметода доступа.
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
Комментарии
Этот метод возвращает тип DependencyPropertyKey, в то время как RegisterAttached возвращает тип DependencyProperty. Как правило, ключи, представляющие свойства только для чтения, не становятся общедоступными, так как ключи можно использовать для задания значения свойства зависимости путем вызова SetValue(DependencyPropertyKey, Object). Дизайн класса повлияет на ваши требования, но обычно рекомендуется ограничить доступ и видимость любого только тех DependencyPropertyKey частей кода, которые необходимы для задания этого свойства зависимости в рамках класса или логики приложения. Также рекомендуется предоставить идентификатор свойства зависимостей для свойства зависимостей только для чтения, предоставив значение DependencyPropertyKey.DependencyProperty поля public static readonly в классе.
Свойства зависимости только для чтения являются довольно типичным сценарием как в существующем API, так и для сценариев настройки, так как другие функции WPF могут требовать свойства зависимости, даже если это свойство не предназначено для задания вызывающими пользователями. Значение свойства зависимостей только для чтения можно использовать в качестве основы для других операций системы свойств, которые принимают свойство зависимостей, например базирование Trigger свойства зависимости в стиле.
Дополнительные сведения о регистрации свойств зависимостей см. в разделе DependencyProperty.
Применяется к
RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)
Регистрирует свойство зависимости только для чтения с указанным типом свойства, типом владельца, метаданными свойства и обратным вызовом проверки.
public:
static System::Windows::DependencyPropertyKey ^ RegisterReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ typeMetadata, System::Windows::ValidateValueCallback ^ validateValueCallback);
public static System.Windows.DependencyPropertyKey RegisterReadOnly(string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata typeMetadata, System.Windows.ValidateValueCallback validateValueCallback);
static member RegisterReadOnly : string * Type * Type * System.Windows.PropertyMetadata * System.Windows.ValidateValueCallback -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterReadOnly (name As String, propertyType As Type, ownerType As Type, typeMetadata As PropertyMetadata, validateValueCallback As ValidateValueCallback) As DependencyPropertyKey
Параметры
- name
- String
Имя свойства зависимостей для регистрации.
- propertyType
- Type
Тип свойства.
- ownerType
- Type
Тип владельца, регистрирующий свойство зависимостей.
- typeMetadata
- PropertyMetadata
Метаданные свойства для свойства зависимостей.
- validateValueCallback
- ValidateValueCallback
Ссылка на созданный пользователем обратный вызов, который должен выполнять любую пользовательскую проверку значения свойства зависимостей за пределами типичной проверки типа.
Возвращаемое значение
Ключ свойства зависимости, который следует использовать для задания значения статического поля только для чтения в классе, который затем используется для ссылки на свойство зависимостей позже.
Комментарии
Этот метод возвращает тип DependencyPropertyKey, в то время как RegisterAttached возвращает тип DependencyProperty. Как правило, ключи, представляющие свойства только для чтения, не становятся общедоступными, так как ключи можно использовать для задания значения свойства зависимости путем вызова SetValue(DependencyPropertyKey, Object). Дизайн класса повлияет на ваши требования, но обычно рекомендуется ограничить доступ и видимость любого только тех DependencyPropertyKey частей кода, которые необходимы для задания этого свойства зависимости в рамках класса или логики приложения. Также рекомендуется предоставить идентификатор свойства зависимостей для свойства зависимостей только для чтения, предоставив значение DependencyPropertyKey.DependencyProperty поля public static readonly в классе.
Свойства зависимостей только для чтения являются довольно типичным сценарием. Значение свойства зависимостей только для чтения можно использовать в качестве основы для других операций системы свойств, которые принимают свойство зависимостей, например базирование Trigger свойства зависимости в стиле.
Дополнительные сведения о регистрации свойств зависимостей см. в разделе DependencyProperty.
Проверка свойства зависимости только для чтения может быть менее важной. Уровень доступа без публикации, указанный для ключа, уменьшает вероятность произвольных недопустимых входных данных.