Udostępnij za pośrednictwem


DependencyProperty.AddOwner Metoda

Definicja

Dodaje inny typ jako właściciel właściwości zależności, która została już zarejestrowana w typie.

Przeciążenia

AddOwner(Type)

Dodaje inny typ jako właściciel właściwości zależności, która została już zarejestrowana.

AddOwner(Type, PropertyMetadata)

Dodaje inny typ jako właściciel właściwości zależności, która została już zarejestrowana, zapewniając metadane właściwości zależności dla właściwości zależności, ponieważ będzie istnieć w podanym typie właściciela.

AddOwner(Type)

Dodaje inny typ jako właściciel właściwości zależności, która została już zarejestrowana.

public:
 System::Windows::DependencyProperty ^ AddOwner(Type ^ ownerType);
public System.Windows.DependencyProperty AddOwner (Type ownerType);
member this.AddOwner : Type -> System.Windows.DependencyProperty
Public Function AddOwner (ownerType As Type) As DependencyProperty

Parametry

ownerType
Type

Typ, który ma zostać dodany jako właściciel tej właściwości zależności.

Zwraca

Odwołanie do oryginalnego DependencyProperty identyfikatora identyfikującego właściwość zależności. Ten identyfikator powinien być uwidoczniony przez klasę dodawania public static readonly jako pole.

Uwagi

Ta metoda umożliwia systemowi właściwości rozpoznawanie właściwości zależności dla typu, który początkowo nie zarejestrował tej konkretnej właściwości zależności.

AddOwner Zazwyczaj służy do dodawania właściwości zależności do klas, które nie ujawniają jeszcze tej właściwości zależności za pośrednictwem dziedziczenia klasy zarządzanej (dziedziczenie klas spowodowałoby dziedziczenie właściwości otoki dziedziczone przez klasę pochodną, a tym samym zapewnić ogólny dostęp do tabeli składowej do właściwości zależności już). AddOwner umożliwia systemowi właściwości rozpoznawanie właściwości zależności dla typu, który początkowo nie zarejestrował tej właściwości zależności.

Ten podpis nie zezwala na określanie metadanych. W przypadku korzystania z tej metody metadane są generowane automatycznie dla nowego DependencyProperty i jego typu właściciela. Metadane generowane automatycznie są wynikiem scalonych metadanych ze wszystkich typów bazowych, które mają zdefiniowaną tę właściwość. Jeśli nie są dostępne żadne scalone metadane, zostaną użyte domyślne metadane właściwości. Jeśli właściwość jest zarejestrowana przy użyciu RegisterAttached metody, domyślne metadane są takie same jak metadane tworzone podczas RegisterAttached wywoływana. PropertyMetadata W przeciwnym razie obiekt jest tworzony z DefaultValue właściwością ustawioną na wartość domyślną typu właściwości, a wszystkie inne właściwości PropertyMetadata obiektu mają wartość null. Użyj podpisu, AddOwner(Type, PropertyMetadata) jeśli chcesz podać metadane dla wersji właściwości zależności, jak dodano do podanego typu.

Wartość zwracana tej metody jest zwykle używana do deklarowania i uwidaczniania właściwości zależności przez zapisanie identyfikatora właściwości zależności. Identyfikator zapewnia dostęp do właściwości zależności, jeśli chcesz wywołać interfejsy API systemu właściwości względem właściwości zależności, szczególnie tak, jak istnieje w przypadku dodawania klasy właściciela. Ta sama nazwa właściwości zarówno oryginalnego właściciela, jak i dodanego właściciela powinna być używana do wskazywania podobnych funkcji. Należy użyć DependencyProperty wartości zwracanej AddOwner metody, aby zdefiniować identyfikator właściwości zależności, a także zadeklarować otoki właściwości CLR dla właściwości zależności dodanych do typów przy użyciu polecenia AddOwner.

Zalecana powyżej metodologia AddOwner jest używana podczas tworzenia właściwości zależności zadeklarowanych w ramach WPF. Na przykład zarówno, jak Border i Control zdefiniuj BorderBrush właściwość zależności, która ma podobne funkcje. Control definiuje właściwość BorderBrush systemu właściwości przez wywołanie AddOwner na podstawie oryginalnego właściciela Border i jego zarejestrowanej BorderBrushProperty właściwości zależności identifer. Wartość AddOwner zwracana jest następnie używana do ustanowienia nowego pola statycznego DependencyProperty (BorderBrushProperty) dla tej właściwości na dodanym właścicielu, a BorderBrush otoka właściwości jest również zadeklarowana.

Dotyczy

AddOwner(Type, PropertyMetadata)

Dodaje inny typ jako właściciel właściwości zależności, która została już zarejestrowana, zapewniając metadane właściwości zależności dla właściwości zależności, ponieważ będzie istnieć w podanym typie właściciela.

public:
 System::Windows::DependencyProperty ^ AddOwner(Type ^ ownerType, System::Windows::PropertyMetadata ^ typeMetadata);
public System.Windows.DependencyProperty AddOwner (Type ownerType, System.Windows.PropertyMetadata typeMetadata);
member this.AddOwner : Type * System.Windows.PropertyMetadata -> System.Windows.DependencyProperty
Public Function AddOwner (ownerType As Type, typeMetadata As PropertyMetadata) As DependencyProperty

Parametry

ownerType
Type

Typ, który ma zostać dodany jako właściciel tej właściwości zależności.

typeMetadata
PropertyMetadata

Metadane, które kwalifikują właściwość zależności, ponieważ istnieją w podanym typie.

Zwraca

Odwołanie do oryginalnego DependencyProperty identyfikatora identyfikującego właściwość zależności. Ten identyfikator powinien być uwidoczniony przez klasę dodawania public static readonly jako pole.

Uwagi

Ta metoda umożliwia systemowi właściwości rozpoznawanie właściwości zależności dla typu, który początkowo nie zarejestrował tej konkretnej właściwości zależności.

Wartość zwracana tej metody służy do deklarowania i uwidocznienia właściwości zależności, szczególnie w miarę jej wystąpienia w klasie dodawania właściciela. Ogólnie rzecz biorąc, ta sama nazwa właściwości zarówno oryginalnego właściciela, jak i dodanego właściciela powinna być używana do wskazywania podobnych funkcji. Dobrym rozwiązaniem jest uwidocznienie identyfikatorów, a także nowych otoek właściwości CLR dla właściwości zależności dodawanych do typów przy użyciu polecenia AddOwner.

Zalecana powyżej metodologia AddOwner jest używana podczas tworzenia interfejsów API zadeklarowanych w ramach platformy WPF. Na przykład zarówno, jak Border i Control zdefiniuj BorderBrush właściwość zależności, która ma podobne funkcje. Control definiuje właściwość BorderBrush systemu właściwości przez wywołanie AddOwner oryginalnego właściciela Border i jego zarejestrowanej BorderBrushProperty właściwości zależności identifer. Wartość AddOwner zwracana jest następnie używana do ustanowienia pola statycznego DependencyProperty (BorderBrushProperty) dla tej właściwości na dodanym właścicielu, a BorderBrush otoka właściwości jest również zadeklarowana.

Identyfikator właściwości zależności dodanego właściciela powinien być używany do wykonywania operacji, takich jak GetValue. Jednak operacje specyficzne dla typu obejmujące typy lub wystąpienia klasy dodanej jako właściciel z różnymi metadanymi nadal będą zwracać oczekiwane wyniki. Jest to prawdą, nawet jeśli oryginalny (a nie dodany właściciel) identyfikator właściwości zależności jest określony w wywołaniach do metod, takich jak GetValue lub GetMetadata. Metadane dodanego właściciela są utrwalane przez AddOwner samo wywołanie, niekoniecznie przywoływane wyłącznie przez dodanie pola identyfikatora klasy właściciela. Niemniej jednak dobrym rozwiązaniem jest uwidocznienie identyfikatora, a także nowych otoek właściwości clR dla właściwości zależności dodanych do typów przy użyciu metody AddOwner, ponieważ nie można tego zrobić, powoduje rozbieżność między reprezentacjami CLR i XAML właściwości.

Podane metadane są scalane z metadanymi właściwości dla właściwości zależności, ponieważ istnieją w właścicielu podstawowym. Wszelkie cechy określone w oryginalnych metadanych podstawowych będą utrwalane. Tylko te cechy, które zostały specjalnie zmienione w nowych metadanych, zastąpią cechy metadanych podstawowych. Niektóre cechy, takie jak DefaultValue, są zastępowane, jeśli są określone w nowych metadanych. Inne, takie jak PropertyChangedCallback, są łączone. Ostatecznie zachowanie scalania zależy od typu metadanych właściwości używanego do zastąpienia, więc zachowanie opisane tutaj dotyczy istniejących klas metadanych właściwości używanych przez właściwości zależności WPF. Aby uzyskać szczegółowe informacje, zobacz Metadane właściwości zależności i metadane właściwości struktury.

Dotyczy