DependencyProperty.RegisterReadOnly Metoda

Definice

Zaregistruje vlastnost závislosti jako vlastnost závislosti jen pro čtení.

Přetížení

RegisterReadOnly(String, Type, Type, PropertyMetadata)

Zaregistruje vlastnost závislosti jen pro čtení se zadaným typem vlastnosti, typem vlastníka a metadaty vlastností.

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

Zaregistruje vlastnost závislosti jen pro čtení se zadaným typem vlastnosti, typem vlastníka, metadaty vlastností a zpětným voláním ověřování.

RegisterReadOnly(String, Type, Type, PropertyMetadata)

Zaregistruje vlastnost závislosti jen pro čtení se zadaným typem vlastnosti, typem vlastníka a metadaty vlastností.

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

Název vlastnosti závislosti, která se má zaregistrovat

propertyType
Type

Typ proměnné

ownerType
Type

Typ vlastníka, který registruje vlastnost závislosti.

typeMetadata
PropertyMetadata

Metadata vlastnosti pro vlastnost závislosti

Návraty

DependencyPropertyKey

Klíč vlastnosti závislosti, který se má použít k nastavení hodnoty statického pole určeného jen pro čtení ve třídě, která se pak používá pro odkazování na vlastnost závislosti.

Příklady

Následující příklad registruje AquariumSize vlastnost závislosti jako jen pro čtení. Příklad definuje AquariumSizeKey jako interní klíč (aby ostatní třídy v sestavení mohly přepsat metadata) a zpřístupňuje identifikátor vlastnosti závislosti na základě tohoto klíče jako AquariumSizeProperty . Také se vytvoří obálka pro AquariumSize s přístupovým objektem 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

Poznámky

Tato metoda vrací typ DependencyPropertyKey , zatímco RegisterAttached vrací typ DependencyProperty . Obvykle klíče, které představují vlastnosti jen pro čtení, nejsou zveřejněny, protože klíče lze použít k nastavení hodnoty vlastnosti závislosti voláním SetValue(DependencyPropertyKey, Object) . Vaše návrh třídy bude mít vliv na vaše požadavky, ale obecně se doporučuje omezit přístup a viditelnost všech DependencyPropertyKey pouze na ty části kódu, které jsou nezbytné k nastavení této vlastnosti závislosti jako součást logiky třídy nebo aplikace. Je také vhodné vystavit identifikátor vlastnosti závislosti pro vlastnost závislosti jen pro čtení vyvoláním hodnoty DependencyPropertyKey.DependencyProperty jako public static readonly pole ve třídě.

Vlastnosti závislosti jen pro čtení jsou poměrně Typický scénář jak v existujícím rozhraní API, tak ve scénářích přizpůsobení, protože jiné funkce WPF mohou vyžadovat vlastnost závislosti i v případě, že tato vlastnost není určena pro nastavení volajícími. Hodnotu vlastnosti závislosti jen pro čtení můžete použít jako základ pro jiné operace se systémem vlastností, které přijímají vlastnost závislosti, jako je například založení Trigger na vlastnosti Dependency ve stylu.

Další informace o registraci vlastností závislosti naleznete v tématu DependencyProperty .

Platí pro

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

Zaregistruje vlastnost závislosti jen pro čtení se zadaným typem vlastnosti, typem vlastníka, metadaty vlastností a zpětným voláním ověřování.

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

Název vlastnosti závislosti, která se má zaregistrovat

propertyType
Type

Typ proměnné

ownerType
Type

Typ vlastníka, který registruje vlastnost závislosti.

typeMetadata
PropertyMetadata

Metadata vlastnosti pro vlastnost závislosti

validateValueCallback
ValidateValueCallback

Odkaz na zpětné volání vytvořené uživatelem, které by mělo provádět jakékoli vlastní ověření hodnoty vlastnosti závislosti nad rámec typického ověřování typu.

Návraty

DependencyPropertyKey

Klíč vlastnosti závislosti, který se má použít k nastavení hodnoty statického pole určeného jen pro čtení ve třídě, která se pak použije pro pozdější odkaz na vlastnost závislosti.

Poznámky

Tato metoda vrací typ DependencyPropertyKey , zatímco RegisterAttached vrací typ DependencyProperty . Obvykle klíče, které představují vlastnosti jen pro čtení, nejsou zveřejněny, protože klíče lze použít k nastavení hodnoty vlastnosti závislosti voláním SetValue(DependencyPropertyKey, Object) . Vaše návrh třídy bude mít vliv na vaše požadavky, ale obecně se doporučuje omezit přístup a viditelnost všech DependencyPropertyKey pouze na ty části kódu, které jsou nezbytné k nastavení této vlastnosti závislosti jako součást logiky třídy nebo aplikace. Je také vhodné vystavit identifikátor vlastnosti závislosti pro vlastnost závislosti jen pro čtení vyvoláním hodnoty DependencyPropertyKey.DependencyProperty jako public static readonly pole ve třídě.

Vlastnosti závislosti jen pro čtení jsou poměrně typickým scénářem. Hodnotu vlastnosti závislosti jen pro čtení můžete použít jako základ pro jiné operace se systémem vlastností, které přijímají vlastnost závislosti, jako je například založení Trigger na vlastnosti Dependency ve stylu.

Další informace o registraci vlastností závislosti naleznete v tématu DependencyProperty .

Ověření vlastnosti závislosti jen pro čtení může být méně důležité. Úroveň přístupu NonPublic, kterou zadáte pro klíč, snižuje pravděpodobnost pro libovolný neplatný vstup.

Platí pro