DependencyProperty.AddOwner Method

Definition

Fügt einen weiteren Typ als Besitzer einer Abhängigkeitseigenschaft hinzu, die bereits für einen Typ registriert wurde.Adds another type as an owner of a dependency property that has already been registered to a type.

Overloads

AddOwner(Type)

Fügt einen weiteren Typ als Besitzer einer Abhängigkeitseigenschaft hinzu, die bereits registriert wurde.Adds another type as an owner of a dependency property that has already been registered.

AddOwner(Type, PropertyMetadata)

Fügt einen anderen Typ als Besitzer einer Abhängigkeitseigenschaft hinzu, die bereits registriert wurde. Dabei werden Abhängigkeitseigenschaft-Metadaten für die Abhängigkeitseigenschaft bereitgestellt, wie sie für den bereitgestellten Besitzertyp vorhanden sind.Adds another type as an owner of a dependency property that has already been registered, providing dependency property metadata for the dependency property as it will exist on the provided owner type.

AddOwner(Type)

Fügt einen weiteren Typ als Besitzer einer Abhängigkeitseigenschaft hinzu, die bereits registriert wurde.Adds another type as an owner of a dependency property that has already been registered.

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

Parameters

ownerType
Type

Der Typ, der als ein Besitzer dieser Abhängigkeitseigenschaft hinzugefügt werden soll.The type to add as an owner of this dependency property.

Returns

DependencyProperty

Ein Verweis auf den ursprünglichen DependencyProperty-Bezeichner, der die Abhängigkeitseigenschaft angibt.A reference to the original DependencyProperty identifier that identifies the dependency property. Dieser Bezeichner sollte von der hinzufügenden Klasse als public static readonly-Feld verfügbar gemacht werden.This identifier should be exposed by the adding class as a public static readonly field.

Remarks

Diese Methode ermöglicht es dem Eigenschaften System, eine Abhängigkeits Eigenschaft für einen Typ zu erkennen, der diese bestimmte Abhängigkeits Eigenschaft nicht anfänglich registriert hat.This method enables the property system to recognize a dependency property on a type that did not register that particular dependency property initially.

In der Regel wird AddOwner verwendet, um Klassen Abhängigkeits Eigenschaften hinzuzufügen, die diese Abhängigkeits Eigenschaft nicht bereits über die verwaltete Klassen Vererbung verfügbar machen (die Klassen Vererbung würde bewirken, dass die Wrapper Eigenschaften von der abgeleiteten Klasse geerbt werden und somit allgemeine Member-Table-Zugriff auf die Abhängigkeits Eigenschaft bereitstellen würde).Typically, AddOwner is used to add dependency properties to classes that do not already expose that dependency property through managed class inheritance (class inheritance would cause the wrapper properties to be inherited by the derived class, and thus would provide general members-table access to the dependency property already). AddOwner ermöglicht es dem Eigenschaften System, eine Abhängigkeits Eigenschaft für einen Typ zu erkennen, der diese Abhängigkeits Eigenschaft nicht anfänglich registriert hat.AddOwner enables the property system to recognize a dependency property on a type that did not register that dependency property initially.

Diese Signatur lässt keine Angabe von Metadaten zu.This signature does not allow for specifying metadata. Wenn Sie diese Methode verwenden, werden die Metadaten automatisch für den neuen DependencyProperty und deren Besitzertyp generiert.When you use this method, the metadata is automatically generated for the new DependencyProperty and its owner type. Die automatisch generierten Metadaten sind das Ergebnis der zusammengeführten Metadaten aller Basis Typen, für die diese Eigenschaft definiert ist.The auto-generated metadata is the result of the merged metadata from all of the base types that have this property defined. Wenn keine zusammengeführten Metadaten verfügbar sind, werden die Standard Metadaten für die Eigenschaft verwendet.If no merged metadata is available, then the default metadata for the property is used. Wenn die Eigenschaft mit der RegisterAttached-Methode registriert wird, sind die Standard Metadaten identisch mit den Metadaten, die beim Aufrufen RegisterAttached erstellt wurden.If the property is registered by using the RegisterAttached method, then the default metadata is the same as the metadata that is created when RegisterAttached was called. Andernfalls wird das PropertyMetadata Objekt erstellt, wobei die Eigenschaft DefaultValue auf den Standardwert des Eigenschafts Typs und alle anderen Eigenschaften des PropertyMetadata auf nullfestgelegt ist.Otherwise, the PropertyMetadata object is created with the DefaultValue property set to the property type's default and all other properties of the PropertyMetadata is set to null. Verwenden Sie die AddOwner(Type, PropertyMetadata) Signatur, wenn Sie Metadaten für die Version der Abhängigkeits Eigenschaft bereitstellen möchten, die dem bereitgestellten Typ hinzugefügt wurde.Use the AddOwner(Type, PropertyMetadata) signature if you want to provide metadata for the version of the dependency property as added to the provided type.

Der Rückgabewert dieser Methode wird normalerweise verwendet, um die Abhängigkeits Eigenschaft zu deklarieren und verfügbar zu machen, indem Sie einen Bezeichner der Abhängigkeits EigenschaftThe return value of this method is typically used to declare and expose the dependency property by storing a dependency property identifier. Der Bezeichner ermöglicht den Zugriff auf die Abhängigkeits Eigenschaft, wenn Sie Eigenschaften System-APIs für die Abhängigkeits Eigenschaft aufrufen möchten, insbesondere, da Sie in der hinzugefügten Besitzer Klasse vorhanden ist.The identifier provides access to the dependency property if you want to call property system APIs against the dependency property, particularly as it exists on the adding owner class. Der gleiche Eigenschaftsname für den ursprünglichen Besitzer und den hinzugefügten Besitzer sollte verwendet werden, um die ähnliche Funktionalität anzugeben.The same property name for both original owner and added owner should be used to indicate the similar functionality. Sie sollten den DependencyProperty Rückgabewert der AddOwner-Methode verwenden, um den Bezeichner der Abhängigkeits Eigenschaft zu definieren und außerdem CLRCLR Eigenschaftenwrapper für Abhängigkeits Eigenschaften zu deklarieren, die Typen mithilfe AddOwnerhinzugefügt werden.You should use the DependencyProperty return value of the AddOwner method to define the dependency property identifier, and also to declare CLRCLR property wrappers, for dependency properties that are added to types using AddOwner.

Die oben beschriebene AddOwner Methodik wird beim Erstellen der Abhängigkeits Eigenschaften verwendet, die in WPFWPFdeklariert werden.The AddOwner methodology recommended above is used when creating the dependency properties that are declared within WPFWPF. Beispielsweise definieren sowohl Border als auch Control eine BorderBrush-Abhängigkeits Eigenschaft, die über eine ähnliche Funktionalität verfügt.For instance, both Border and Control define a BorderBrush dependency property, which have similar functionality. Control definiert seine BorderBrush-Eigenschaft für das Eigenschaften System durch Aufrufen von AddOwner auf der Grundlage des ursprünglichen Besitzer Border und des registrierten BorderBrushProperty Abhängigkeits Eigenschaften Bezeichners.Control defines its BorderBrush property to the property system by calling AddOwner based on the original owner Border and its registered BorderBrushProperty dependency property identifer. Der AddOwner Rückgabewert wird dann verwendet, um ein neues statisches DependencyProperty Feld (BorderBrushProperty) für diese Eigenschaft für den hinzugefügten Besitzer einzurichten. Außerdem wird ein BorderBrush Eigenschafts Wrapper deklariert.The AddOwner return value is then used to establish a new static DependencyProperty field (BorderBrushProperty) for that property on the added owner, and a BorderBrush property wrapper is also declared.

AddOwner(Type, PropertyMetadata)

Fügt einen anderen Typ als Besitzer einer Abhängigkeitseigenschaft hinzu, die bereits registriert wurde. Dabei werden Abhängigkeitseigenschaft-Metadaten für die Abhängigkeitseigenschaft bereitgestellt, wie sie für den bereitgestellten Besitzertyp vorhanden sind.Adds another type as an owner of a dependency property that has already been registered, providing dependency property metadata for the dependency property as it will exist on the provided owner type.

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

Parameters

ownerType
Type

Der Typ, der als Besitzer dieser Abhängigkeitseigenschaft hinzugefügt werden soll.The type to add as owner of this dependency property.

typeMetadata
PropertyMetadata

Die Metadaten, die die Abhängigkeitseigenschaft beschreiben, wie sie für den bereitgestellten Typ vorhanden sind.The metadata that qualifies the dependency property as it exists on the provided type.

Returns

DependencyProperty

Ein Verweis auf den ursprünglichen DependencyProperty-Bezeichner, der die Abhängigkeitseigenschaft angibt.A reference to the original DependencyProperty identifier that identifies the dependency property. Dieser Bezeichner sollte von der hinzufügenden Klasse als public static readonly-Feld verfügbar gemacht werden.This identifier should be exposed by the adding class as a public static readonly field.

Remarks

Diese Methode ermöglicht es dem Eigenschaften System, eine Abhängigkeits Eigenschaft für einen Typ zu erkennen, der diese bestimmte Abhängigkeits Eigenschaft nicht anfänglich registriert hat.This method enables the property system to recognize a dependency property on a type that did not register that particular dependency property initially.

Der Rückgabewert dieser Methode wird verwendet, um die Abhängigkeits Eigenschaft zu deklarieren und verfügbar zu machen, insbesondere, da Sie in der hinzugefügten Besitzer Klasse vorhanden ist.The return value of this method is used to declare and expose the dependency property, particularly as it exists on the adding owner class. Im Allgemeinen sollte derselbe Eigenschaftsname sowohl für den ursprünglichen Besitzer als auch für den hinzugefügten Besitzer verwendet werden, um die ähnliche Funktionalität anzugeben.Generally, the same property name for both original owner and added owner should be used to indicate the similar functionality. Es empfiehlt sich, die Bezeichner sowie neue CLRCLR-Eigenschaftenwrapper für Abhängigkeits Eigenschaften verfügbar zu machen, die Typen mithilfe von AddOwnerhinzugefügt werden.It is good practice to expose the identifiers, as well as new CLRCLR property wrappers, for dependency properties that are added to types using AddOwner.

Die oben beschriebene AddOwner Methodik wird beim Erstellen von in WPFWPFdeklarierten APIs verwendet.The AddOwner methodology recommended above is used when creating APIs declared within WPFWPF. Beispielsweise definieren sowohl Border als auch Control eine BorderBrush-Abhängigkeits Eigenschaft, die über eine ähnliche Funktionalität verfügt.For instance, both Border and Control define a BorderBrush dependency property, which have similar functionality. Control definiert seine BorderBrush-Eigenschaft für das Eigenschaften System durch Aufrufen von AddOwner für den ursprünglichen Besitzer Border und seine registrierte BorderBrushProperty Abhängigkeits Eigenschaften Bezeichner.Control defines its BorderBrush property to the property system by calling AddOwner on original owner Border and its registered BorderBrushProperty dependency property identifer. Der AddOwner Rückgabewert wird dann verwendet, um ein statisches DependencyProperty Feld (BorderBrushProperty) für diese Eigenschaft für den hinzugefügten Besitzer einzurichten. Außerdem wird ein BorderBrush Eigenschafts Wrapper deklariert.The AddOwner return value is then used to establish a static DependencyProperty field (BorderBrushProperty) for that property on the added owner, and a BorderBrush property wrapper is also declared.

Der Bezeichner der Abhängigkeits Eigenschaft des hinzugefügten Besitzers sollte für Vorgänge wie GetValueverwendet werden.The added owner's dependency property identifier should be used for operations such as GetValue. Typspezifische Vorgänge, die entweder Typen oder Instanzen der Klasse betreffen, die als Besitzer mit unterschiedlichen Metadaten hinzugefügt wurden, geben jedoch weiterhin die erwarteten Ergebnisse zurück, auch wenn der ursprüngliche Bezeichner der Abhängigkeits Eigenschaft (nicht der hinzugefügte Besitzer) in Aufrufen von Methoden wie GetValue oder GetMetadataangegeben wird.However, type-specific operations involving either types or instances of the class that was added as owner with different metadata will still return the expected results even if the original (not the added owner's) dependency property identifier is specified in calls to methods such as GetValue or GetMetadata. Die Metadaten für den hinzugefügten Besitzer werden durch den AddOwner-Rückruf selbst fortgesetzt, nicht notwendigerweise ausschließlich durch das Hinzufügen des Bezeichners für Besitzer Klassen Bezeichner.The metadata for the added owner is perpetuated by the AddOwner call itself, not necessarily referenced exclusively by the adding owner class identifier field. Trotzdem empfiehlt es sich, den Bezeichner sowie neue CLRCLR-Eigenschaftenwrapper für Abhängigkeits Eigenschaften verfügbar zu machen, die Typen mithilfe von AddOwnerhinzugefügt werden, da dies nicht zu einer Unterschiede zwischen dem CLRCLR und XAMLXAML Darstellungen ihrer Eigenschaften führt.Nevertheless, it is good practice to expose the identifier, as well as new CLRCLR property wrappers, for dependency properties that are added to types using AddOwner, because failing to do so creates disparity between the CLRCLR and XAMLXAML representations of your properties.

Die angegebenen Metadaten werden mit den Eigenschafts Metadaten für die Abhängigkeits Eigenschaft zusammengeführt, so wie Sie auf dem Basis Besitzer vorhanden sind.The supplied metadata is merged with the property metadata for the dependency property as it exists on the base owner. Alle Eigenschaften, die in den ursprünglichen Basis Metadaten angegeben wurden, bleiben erhalten.Any characteristics that were specified in the original base metadata will persist. Nur die Merkmale, die speziell in den neuen Metadaten geändert wurden, überschreiben die Eigenschaften der Basis Metadaten.Only those characteristics that were specifically changed in the new metadata will override the characteristics of the base metadata. Einige Merkmale, wie z. b. DefaultValue, werden ersetzt, wenn Sie in den neuen Metadaten angegeben werden.Some characteristics, such as DefaultValue, are replaced if they are specified in the new metadata. Andere, wie z. b. PropertyChangedCallback, werden kombiniert.Others, such as PropertyChangedCallback, are combined. Letztendlich hängt das Zusammensetzungs Verhalten vom Eigenschaftentyp ab, der für die Überschreibung verwendet wird, sodass das hier beschriebene Verhalten für die vorhandenen eigenschaftenmetadatenklassen ist, die von WPFWPF Abhängigkeits Eigenschaften verwendet werden.Ultimately, the merge behavior depends on the property metadata type being used for the override, so the behavior described here is for the existing property metadata classes used by WPFWPF dependency properties. Weitere Informationen finden Sie unter Metadaten für Abhängigkeits Eigenschaften und Framework-Eigenschaften Metadaten.For details, see Dependency Property Metadata and Framework Property Metadata.

Applies to