DependencyProperty.RegisterReadOnly Metoda

Definicja

Rejestruje właściwość zależności jako właściwość zależności tylko do odczytu.

Przeciążenia

RegisterReadOnly(String, Type, Type, PropertyMetadata)

Rejestruje właściwość zależności tylko do odczytu z określonym typem właściwości, typem właściciela i metadanymi właściwości.

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

Rejestruje właściwość zależności tylko do odczytu z określonym typem właściwości, typem właściciela, metadanymi właściwości i wywołaniem zwrotnym weryfikacji.

RegisterReadOnly(String, Type, Type, PropertyMetadata)

Rejestruje właściwość zależności tylko do odczytu z określonym typem właściwości, typem właściciela i metadanymi właściwości.

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

Parametry

name
String

Nazwa właściwości zależności do zarejestrowania.

propertyType
Type

Typ właściwości.

ownerType
Type

Typ właściciela rejestrujący właściwość zależności.

typeMetadata
PropertyMetadata

Metadane właściwości dla właściwości zależności.

Zwraca

DependencyPropertyKey

Klucz właściwości zależności, który powinien służyć do ustawiania wartości statycznego pola tylko do odczytu w klasie, która jest następnie używana do odwołowania się do właściwości zależności.

Przykłady

Poniższy przykład rejestruje AquariumSize właściwość zależności jako tylko do odczytu. Przykład definiuje AquariumSizeKey jako klucz wewnętrzny (tak, aby inne klasy w zestawie mogły zastąpić metadane) i uwidacznia identyfikator właściwości zależności na podstawie tego klucza jako AquariumSizeProperty. Ponadto otoka jest tworzona dla AquariumSizeelementu , tylko przy użyciu metody 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

Uwagi

Ta metoda zwraca typ , natomiast RegisterAttached zwraca typ .DependencyPropertyKeyDependencyProperty Zazwyczaj klucze reprezentujące właściwości tylko do odczytu nie są upublicznione, ponieważ klucze mogą służyć do ustawiania wartości właściwości zależności przez wywołanie metody SetValue(DependencyPropertyKey, Object). Projekt klasy będzie mieć wpływ na wymagania, ale zazwyczaj zaleca się ograniczenie dostępu i widoczności dowolnych DependencyPropertyKey elementów do tylko tych części kodu, które są niezbędne do ustawienia tej właściwości zależności w ramach logiki klasy lub aplikacji. Zaleca się również uwidocznienie identyfikatora właściwości zależności dla właściwości zależności tylko do odczytu przez uwidocznienie wartości DependencyPropertyKey.DependencyProperty public static readonly jako pola w klasie.

Właściwości zależności tylko do odczytu są dość typowym scenariuszem zarówno w istniejącym interfejsie API, jak i w scenariuszach dostosowywania, ponieważ inne funkcje WPF mogą wymagać właściwości zależności, nawet jeśli ta właściwość nie ma być ustawiana przez osoby wywołujące. Można użyć wartości właściwości zależności tylko do odczytu jako podstawy dla innych operacji systemu właściwości, które przyjmują właściwość zależności, na przykład na podstawie Trigger właściwości zależności w stylu.

Aby uzyskać więcej informacji na temat rejestracji właściwości zależności, zobacz DependencyProperty.

Dotyczy

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

Rejestruje właściwość zależności tylko do odczytu z określonym typem właściwości, typem właściciela, metadanymi właściwości i wywołaniem zwrotnym weryfikacji.

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

Parametry

name
String

Nazwa właściwości zależności do zarejestrowania.

propertyType
Type

Typ właściwości.

ownerType
Type

Typ właściciela rejestrujący właściwość zależności.

typeMetadata
PropertyMetadata

Metadane właściwości dla właściwości zależności.

validateValueCallback
ValidateValueCallback

Odwołanie do wywołania zwrotnego utworzonego przez użytkownika, które powinno wykonać niestandardową walidację wartości właściwości zależności poza typową walidacją typu.

Zwraca

DependencyPropertyKey

Klucz właściwości zależności, który powinien służyć do ustawiania wartości statycznego pola tylko do odczytu w klasie, który jest następnie używany do odwołowania się do właściwości zależności później.

Uwagi

Ta metoda zwraca typ , natomiast RegisterAttached zwraca typ .DependencyPropertyKeyDependencyProperty Zazwyczaj klucze reprezentujące właściwości tylko do odczytu nie są upublicznione, ponieważ klucze mogą służyć do ustawiania wartości właściwości zależności przez wywołanie metody SetValue(DependencyPropertyKey, Object). Projekt klasy będzie mieć wpływ na wymagania, ale zazwyczaj zaleca się ograniczenie dostępu i widoczności dowolnych DependencyPropertyKey elementów do tylko tych części kodu, które są niezbędne do ustawienia tej właściwości zależności w ramach logiki klasy lub aplikacji. Zaleca się również uwidocznienie identyfikatora właściwości zależności dla właściwości zależności tylko do odczytu przez uwidocznienie wartości DependencyPropertyKey.DependencyProperty public static readonly jako pola w klasie.

Właściwości zależności tylko do odczytu są dość typowym scenariuszem. Można użyć wartości właściwości zależności tylko do odczytu jako podstawy dla innych operacji systemu właściwości, które przyjmują właściwość zależności, na przykład na podstawie Trigger właściwości zależności w stylu.

Aby uzyskać więcej informacji na temat rejestracji właściwości zależności, zobacz DependencyProperty.

Walidacja właściwości zależności tylko do odczytu może być mniej ważna. Poziom dostępu niepublikowego określony dla klucza zmniejsza prawdopodobieństwo dowolnego nieprawidłowego wejścia.

Dotyczy