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
метода доступа get.
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.
Проверка свойства зависимостей только для чтения может быть менее важной. Неопубликованный уровень доступа, указанный для ключа, снижает вероятность произвольных недопустимых входных данных.