DependencyProperty.RegisterReadOnly Метод

Определение

Регистрирует свойство зависимостей как свойство зависимостей только для чтения.Registers a dependency property as a read-only dependency property.

Перегрузки

RegisterReadOnly(String, Type, Type, PropertyMetadata)

Регистрирует доступное только для чтения свойство зависимостей с указанным типом свойства, типом владельца и метаданными свойства.Registers a read-only dependency property, with the specified property type, owner type, and property metadata.

RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

Регистрирует доступное только для чтения свойство зависимостей с указанным типом свойства, типом владельца, метаданными свойства и обратным вызовом для проверки.Registers a read-only dependency property, with the specified property type, owner type, property metadata, and a validation callback.

RegisterReadOnly(String, Type, Type, PropertyMetadata)

Регистрирует доступное только для чтения свойство зависимостей с указанным типом свойства, типом владельца и метаданными свойства.Registers a read-only dependency property, with the specified property type, owner type, and property metadata.

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

Имя регистрируемого свойства зависимостей.The name of the dependency property to register.

propertyType
Type

Тип свойства.The type of the property.

ownerType
Type

Тип владельца, регистрирующего свойство зависимостей.The owner type that is registering the dependency property.

typeMetadata
PropertyMetadata

Метаданные свойства зависимостей.Property metadata for the dependency property.

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

Ключ свойства зависимостей, который следует использовать для задания значения статического доступного только для чтения поля в вашем классе, которое затем используется для ссылки на свойство зависимостей.A dependency property key that should be used to set the value of a static read-only field in your class, which is then used to reference the dependency property.

Примеры

В следующем примере свойство зависимостей AquariumSize регистрируется как доступное только для чтения.The following example registers an AquariumSize dependency property as read-only. В примере определяется AquariumSizeKey как внутренний ключ (чтобы другие классы в сборке могли переопределять метаданные) и предоставляет идентификатор свойства зависимостей на основе этого ключа как AquariumSizeProperty.The example defines AquariumSizeKey as an internal key (so that other classes in the assembly could override metadata) and exposes the dependency property identifier based on that key as AquariumSizeProperty. Кроме того, создается оболочка для AquariumSizeс использованием только метода доступа get.Also, a wrapper is created for AquariumSize, with only a get accessor.

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типа.This method returns the type DependencyPropertyKey, whereas RegisterAttached returns the type DependencyProperty. Как правило, ключи, представляющие свойства только для чтения, не являются общедоступными, поскольку ключи можно использовать для установки значения свойства зависимостей путем вызова SetValue(DependencyPropertyKey, Object).Typically, the keys that represent read-only properties are not made public, because the keys can be used to set the dependency property value by calling SetValue(DependencyPropertyKey, Object). Разработка класса повлияет на ваши требования, но обычно рекомендуется ограничить доступ и видимость любых DependencyPropertyKey только теми частями кода, которые необходимы для установки этого свойства зависимостей как части логики класса или приложения.Your class design will affect your requirements, but it is generally recommended to limit the access and visibility of any DependencyPropertyKey to only those parts of your code that are necessary to set that dependency property as part of class or application logic. Также рекомендуется предоставить идентификатор свойства зависимостей для свойства зависимостей "только для чтения", предоставив значение DependencyPropertyKey.DependencyProperty в качестве поля public static readonly в классе.It is also recommended that you expose a dependency property identifier for the read-only dependency property, by exposing the value of DependencyPropertyKey.DependencyProperty as a public static readonly field on your class.

Свойства зависимостей "только для чтения" являются довольно типичным сценарием как в существующем API, так и в сценариях настройки, поскольку для других функций WPFWPF может потребоваться свойство зависимости, даже если это свойство не предназначено для настройки вызывающими объектами.Read-only dependency properties are a fairly typical scenario both in the existing API and for customization scenarios, because other WPFWPF features might require a dependency property even if that property is not intended to be settable by callers. Значение свойства зависимости, доступное только для чтения, можно использовать в качестве основания для других операций системы свойств, принимающих свойство зависимостей, например для Trigger в свойстве зависимостей в стиле.You can use the value of a read-only dependency property as the basis for other property system operations that take a dependency property, such as basing a Trigger on the dependency property in a style.

Дополнительные сведения о регистрации свойств зависимостей см. в разделе DependencyProperty.For more information on dependency property registration, see DependencyProperty.

RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

Регистрирует доступное только для чтения свойство зависимостей с указанным типом свойства, типом владельца, метаданными свойства и обратным вызовом для проверки.Registers a read-only dependency property, with the specified property type, owner type, property metadata, and a validation callback.

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

Имя регистрируемого свойства зависимостей.The name of the dependency property to register.

propertyType
Type

Тип свойства.The type of the property.

ownerType
Type

Тип владельца, регистрирующего свойство зависимостей.The owner type that is registering the dependency property.

typeMetadata
PropertyMetadata

Метаданные свойства зависимостей.Property metadata for the dependency property.

validateValueCallback
ValidateValueCallback

Ссылка на созданный пользователем обратный вызов, который должен выполнить пользовательскую проверку значения свойства зависимостей после обычной проверки типа.A reference to a user-created callback that should perform any custom validation of the dependency property value beyond typical type validation.

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

Ключ свойства зависимостей, который следует использовать для задания значения статического доступного только для чтения поля в вашем классе, которое затем используется для ссылки на свойство зависимостей.A dependency property key that should be used to set the value of a static read-only field in your class, which is then used to reference the dependency property later.

Комментарии

Этот метод возвращает тип DependencyPropertyKey, тогда как RegisterAttached возвращает DependencyPropertyтипа.This method returns the type DependencyPropertyKey, whereas RegisterAttached returns the type DependencyProperty. Как правило, ключи, представляющие свойства только для чтения, не являются общедоступными, поскольку ключи можно использовать для установки значения свойства зависимостей путем вызова SetValue(DependencyPropertyKey, Object).Typically, the keys that represent read-only properties are not made public, because the keys can be used to set the dependency property value by calling SetValue(DependencyPropertyKey, Object). Разработка класса повлияет на ваши требования, но обычно рекомендуется ограничить доступ и видимость любых DependencyPropertyKey только теми частями кода, которые необходимы для установки этого свойства зависимостей как части логики класса или приложения.Your class design will affect your requirements, but it is generally recommended to limit the access and visibility of any DependencyPropertyKey to only those parts of your code that are necessary to set that dependency property as part of class or application logic. Также рекомендуется предоставить идентификатор свойства зависимостей для свойства зависимостей "только для чтения", предоставив значение DependencyPropertyKey.DependencyProperty в качестве поля public static readonly в классе.It is also recommended that you expose a dependency property identifier for the read-only dependency property, by exposing the value of DependencyPropertyKey.DependencyProperty as a public static readonly field on your class.

Свойства зависимостей только для чтения являются довольно типичным сценарием.Read-only dependency properties are a fairly typical scenario. Значение свойства зависимости, доступное только для чтения, можно использовать в качестве основания для других операций системы свойств, принимающих свойство зависимостей, например для Trigger в свойстве зависимостей в стиле.You can use the value of a read-only dependency property as the basis for other property system operations that take a dependency property, such as basing a Trigger on the dependency property in a style.

Дополнительные сведения о регистрации свойств зависимостей см. в разделе DependencyProperty.For more information on dependency property registration, see DependencyProperty.

Проверка свойства зависимостей, доступного только для чтения, может быть менее важной.Validation on a read-only dependency property might be less important. Неоткрытый уровень доступа, указанный для ключа, снижает вероятность неправильного ввода.The nonpublic access level you specify for the key reduces the likelihood for arbitrary invalid input.

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