DependencyProperty.AddOwner Metod

Definition

Lägger till en annan typ som ägare till en beroendeegenskap som redan har registrerats för en typ.

Överlagringar

Name Description
AddOwner(Type)

Lägger till en annan typ som ägare till en beroendeegenskap som redan har registrerats.

AddOwner(Type, PropertyMetadata)

Lägger till en annan typ som ägare av en beroendeegenskap som redan har registrerats, vilket ger metadata för beroendeegenskapen eftersom den finns på den angivna ägartypen.

AddOwner(Type)

Lägger till en annan typ som ägare till en beroendeegenskap som redan har registrerats.

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

Parametrar

ownerType
Type

Den typ som ska läggas till som ägare av den här beroendeegenskapen.

Returer

En referens till den ursprungliga DependencyProperty identifieraren som identifierar beroendeegenskapen. Den här identifieraren ska exponeras av den lägga till klassen som ett public static readonly fält.

Kommentarer

Med den här metoden kan egenskapssystemet identifiera en beroendeegenskap för en typ som inte registrerade den specifika beroendeegenskapen från början.

AddOwner Används vanligtvis för att lägga till beroendeegenskaper till klasser som inte redan exponerar den beroendeegenskapen via arv av hanterad klass (klassarv skulle göra att omslutningsegenskaperna ärvs av den härledda klassen och därmed ger allmän medlemstabellåtkomst till beroendeegenskapen redan). AddOwner gör det möjligt för egenskapssystemet att identifiera en beroendeegenskap för en typ som inte registrerade den beroendeegenskapen från början.

Den här signaturen tillåter inte att metadata anges. När du använder den här metoden genereras metadata automatiskt för den nya DependencyProperty och dess ägartyp. De automatiskt genererade metadata är resultatet av de sammanfogade metadata från alla bastyper som har den här egenskapen definierad. Om inga sammanfogade metadata är tillgängliga används standardmetadata för egenskapen. Om egenskapen registreras med hjälp RegisterAttached av metoden är standardmetadata samma som de metadata som skapas när RegisterAttached anropades. Annars PropertyMetadata skapas objektet med DefaultValue egenskapen inställd på egenskapstypens standardvärde och alla andra egenskaper för PropertyMetadata är inställda på null. Använd signaturen AddOwner(Type, PropertyMetadata) om du vill ange metadata för den version av beroendeegenskapen som läggs till i den angivna typen.

Returvärdet för den här metoden används vanligtvis för att deklarera och exponera beroendeegenskapen genom att lagra en beroendeegenskapsidentifierare. Identifieraren ger åtkomst till beroendeegenskapen om du vill anropa egenskapssystem-API:er mot beroendeegenskapen, särskilt som den finns i den lägga till ägarklassen. Samma egenskapsnamn för både den ursprungliga ägaren och den tillagda ägaren ska användas för att ange liknande funktioner. Du bör använda DependencyProperty returvärdet för AddOwner metoden för att definiera beroendeegenskapsidentifieraren och även deklarera CLR-egenskapsomslutningar för beroendeegenskaper som läggs till i typer med hjälp av AddOwner.

Den AddOwner metod som rekommenderas ovan används när du skapar beroendeegenskaperna som deklareras inom WPF. Både och Border definierar till exempel Control en BorderBrush beroendeegenskap som har liknande funktioner. Control definierar dess BorderBrush egenskap till egenskapssystemet genom att anropa AddOwner baserat på den ursprungliga ägaren Border och dess registrerade BorderBrushProperty beroendeegenskap identifer. Returvärdet AddOwner används sedan för att upprätta ett nytt statiskt DependencyProperty fält (BorderBrushProperty) för den egenskapen på den tillagda ägaren och en BorderBrush egenskapsomslutning deklareras också.

Gäller för

AddOwner(Type, PropertyMetadata)

Lägger till en annan typ som ägare av en beroendeegenskap som redan har registrerats, vilket ger metadata för beroendeegenskapen eftersom den finns på den angivna ägartypen.

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

Parametrar

ownerType
Type

Den typ som ska läggas till som ägare av den här beroendeegenskapen.

typeMetadata
PropertyMetadata

Metadata som kvalificerar beroendeegenskapen som den finns på den angivna typen.

Returer

En referens till den ursprungliga DependencyProperty identifieraren som identifierar beroendeegenskapen. Den här identifieraren ska exponeras av den lägga till klassen som ett public static readonly fält.

Kommentarer

Med den här metoden kan egenskapssystemet identifiera en beroendeegenskap för en typ som inte registrerade den specifika beroendeegenskapen från början.

Returvärdet för den här metoden används för att deklarera och exponera beroendeegenskapen, särskilt som den finns i den lägga till ägarklassen. I allmänhet bör samma egenskapsnamn för både den ursprungliga ägaren och den tillagda ägaren användas för att ange liknande funktioner. Det är bra att exponera identifierarna, samt nya CLR-egenskapsomslutningar, för beroendeegenskaper som läggs till i typer med hjälp av AddOwner.

Den AddOwner metod som rekommenderas ovan används när du skapar API:er som deklarerats inom WPF. Både och Border definierar till exempel Control en BorderBrush beroendeegenskap som har liknande funktioner. Control definierar dess BorderBrush egenskap till egenskapssystemet genom att anropa AddOwner den ursprungliga ägaren Border och dess registrerade BorderBrushProperty beroendeegenskap identifer. Returvärdet AddOwner används sedan för att upprätta ett statiskt DependencyProperty fält (BorderBrushProperty) för den egenskapen på den tillagda ägaren, och en BorderBrush egenskapsomslutning deklareras också.

Den tillagda ägarens beroendeegenskapsidentifierare ska användas för åtgärder som GetValue. Men typspecifika åtgärder som omfattar antingen typer eller instanser av klassen som wer lagt till som ägare med olika metadata returnerar fortfarande det förväntade resultatet. Detta gäller även om den ursprungliga (inte den tillagda ägarens) beroendeegenskapsidentifierare anges i anrop till metoder som GetValue eller GetMetadata. Metadata för den tillagda ägaren vidmakthålls av själva anropet AddOwner , inte nödvändigtvis enbart av fältet lägga till ägarklassidentifierare. Det är dock bra att exponera identifieraren, samt nya CLR-egenskapsomslutningar, för beroendeegenskaper som läggs till i typer med , AddOwnereftersom om du inte gör det skapas skillnader mellan CLR- och XAML-representationerna av dina egenskaper.

Angivna metadata sammanfogas med egenskapsmetadata för beroendeegenskapen eftersom den finns på basägaren. Alla egenskaper som har angetts i de ursprungliga basmetadata sparas. Endast de egenskaper som har ändrats specifikt i de nya metadata åsidosätter egenskaperna för basmetadata. Vissa egenskaper, till exempel DefaultValue, ersätts om de anges i de nya metadata. Andra, till exempel PropertyChangedCallback, kombineras. I slutändan beror sammanslagningsbeteendet på den egenskapsmetadatatyp som används för åsidosättningen, så det beteende som beskrivs här är för de befintliga egenskapsmetadataklasserna som används av WPF beroendeegenskaper. Mer information finns i Metadata för beroendeegenskap och Framework-egenskapsmetadata.

Gäller för