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.

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

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