DependencyProperty.RegisterAttachedReadOnly Метод

Определение

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

Перегрузки

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)

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

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

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

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)

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

public:
 static System::Windows::DependencyPropertyKey ^ RegisterAttachedReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ defaultMetadata);
public static System.Windows.DependencyPropertyKey RegisterAttachedReadOnly (string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata defaultMetadata);
static member RegisterAttachedReadOnly : string * Type * Type * System.Windows.PropertyMetadata -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterAttachedReadOnly (name As String, propertyType As Type, ownerType As Type, defaultMetadata As PropertyMetadata) As DependencyPropertyKey

Параметры

name
String

Имя регистрируемого свойства зависимостей.

propertyType
Type

Тип свойства.

ownerType
Type

Тип владельца, регистрирующего свойство зависимостей.

defaultMetadata
PropertyMetadata

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

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

DependencyPropertyKey

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

Комментарии

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

Присоединенные свойства только для чтения являются редкими, так как основной сценарий для присоединенного свойства используется в XAML. Без открытого метода задания присоединенное свойство невозможно задать в синтаксисе XAML.

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

Использование RegisterAttached для свойств зависимостей наследования значений

Одним из конкретных сценариев регистрации свойства зависимостей в присоединенном случае является поддержка наследования значений свойств. Следует регистрировать наследующие значения свойства зависимостей RegisterAttached , даже если класс определяет методы доступа к оболочке свойств, предоставляющие свойство зависимостей, и даже если не планируется предоставлять статические методы Get* и Set*, чтобы предоставить истинные присоединенные свойства поддерживают методы доступа. Несмотря на то, что наследование значений свойств может работать для неуклюжих свойств зависимостей, поведение наследования для неуклюжимого свойства через определенные границы элементов в дереве среды выполнения не определено. Регистрация свойства как присоединенного фактически делает присоединенное свойство глобальным свойством в системе свойств и гарантирует, что наследование значений свойства работает по всем границам дерева элементов. Для регистрации свойств всегда используйте RegisterAttached, если в метаданных указываете Inherits. Дополнительные сведения см. в разделе Наследование значения свойства.

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

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

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

public:
 static System::Windows::DependencyPropertyKey ^ RegisterAttachedReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ defaultMetadata, System::Windows::ValidateValueCallback ^ validateValueCallback);
public static System.Windows.DependencyPropertyKey RegisterAttachedReadOnly (string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata defaultMetadata, System.Windows.ValidateValueCallback validateValueCallback);
static member RegisterAttachedReadOnly : string * Type * Type * System.Windows.PropertyMetadata * System.Windows.ValidateValueCallback -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterAttachedReadOnly (name As String, propertyType As Type, ownerType As Type, defaultMetadata As PropertyMetadata, validateValueCallback As ValidateValueCallback) As DependencyPropertyKey

Параметры

name
String

Имя регистрируемого свойства зависимостей.

propertyType
Type

Тип свойства.

ownerType
Type

Тип владельца, регистрирующего свойство зависимостей.

defaultMetadata
PropertyMetadata

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

validateValueCallback
ValidateValueCallback

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

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

DependencyPropertyKey

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

Комментарии

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

Присоединенные свойства только для чтения являются редкими, так как основной сценарий для присоединенного свойства используется в XAML. Без открытого метода задания присоединенное свойство невозможно задать в синтаксисе XAML.

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

Использование RegisterAttached для свойств зависимостей наследования значений

Одним из конкретных сценариев регистрации свойства зависимостей, присоединенного вместо этого Register , является поддержка наследования значений свойств. Следует регистрировать наследующие значения свойства зависимостей RegisterAttached , даже если класс определяет методы доступа к оболочке свойств, предоставляющие свойство зависимостей, и даже если не планируется предоставлять статические методы Get* и Set*, чтобы предоставить истинные присоединенные свойства поддерживают методы доступа. Несмотря на то, что наследование значений свойств может работать для неуклюжих свойств зависимостей, поведение наследования для неуклюжимого свойства через определенные границы элементов в дереве среды выполнения не определено. Регистрация свойства как присоединенного фактически делает присоединенное свойство глобальным свойством в системе свойств и гарантирует, что наследование значений свойства работает по всем границам дерева элементов. Для регистрации свойств всегда используйте RegisterAttached, если в метаданных указываете Inherits. Дополнительные сведения см. в разделе Наследование значения свойства.

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