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

Метаданные свойства зависимостей.

Возвращаемое значение

DependencyPropertyKey

Ключ свойства зависимостей, который следует использовать для задания значения статического доступного только для чтения поля в вашем классе, которое затем используется для ссылки на свойство зависимостей.

Примеры

В следующем примере свойство зависимостей регистрируется 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

Ключ свойства зависимостей, который следует использовать для задания значения статического доступного только для чтения поля в вашем классе, которое затем используется для ссылки на свойство зависимостей.

Комментарии

Этот метод возвращает тип DependencyPropertyKey, в то время как RegisterAttached возвращает тип DependencyProperty. Как правило, ключи, представляющие свойства только для чтения, не становятся открытыми, так как ключи можно использовать для задания значения свойства зависимостей путем вызова SetValue(DependencyPropertyKey, Object). Дизайн класса будет влиять на ваши требования, но обычно рекомендуется ограничить доступ и видимость любого DependencyPropertyKey только тех частей кода, которые необходимы для задания этого свойства зависимостей в рамках класса или логики приложения. Также рекомендуется предоставить идентификатор свойства зависимостей для свойства зависимостей только для чтения, предоставив значение DependencyPropertyKey.DependencyProperty в виде public static readonly поля в классе.

Свойства зависимостей только для чтения являются довольно типичным сценарием. Значение свойства зависимостей, доступного только для чтения, можно использовать в качестве основы для других системных операций свойств, которые принимают свойство зависимостей, например на основе Trigger свойства зависимостей в стиле.

Дополнительные сведения о регистрации свойств зависимостей см. в разделе DependencyProperty.

Проверка свойства зависимостей только для чтения может быть менее важной. Неопубликованный уровень доступа, указанный для ключа, снижает вероятность произвольных недопустимых входных данных.

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