DependencyProperty.AddOwner Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Agrega otro tipo como propietario de una propiedad de dependencia que ya está registrada en un tipo.
Sobrecargas
AddOwner(Type) |
Agrega otro tipo como propietario de una propiedad de dependencia que ya está registrada. |
AddOwner(Type, PropertyMetadata) |
Agrega otro tipo como propietario de una propiedad de dependencia que ya se ha registrado y ofrece los metadatos de propiedad de dependencia para la propiedad de dependencia como se verá en el tipo de propietario proporcionado. |
AddOwner(Type)
Agrega otro tipo como propietario de una propiedad de dependencia que ya está registrada.
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
Parámetros
- ownerType
- Type
Tipo que se va a agregar como propietario de esta propiedad de dependencia.
Devoluciones
Referencia al identificador DependencyProperty original que identifica la propiedad de dependencia. Este identificador debe exponerse mediante la adición de la clase como un campo public static readonly
.
Comentarios
Este método permite al sistema de propiedades reconocer inicialmente una propiedad de dependencia en un tipo que no registró esa propiedad de dependencia en particular.
Normalmente, AddOwner se usa para agregar propiedades de dependencia a clases que aún no exponen esa propiedad de dependencia a través de la herencia de clases administradas (la herencia de clases provocaría que la clase derivada herede las propiedades del contenedor y, por tanto, proporcionaría acceso general a la tabla de miembros a la propiedad de dependencia ya). AddOwner permite que el sistema de propiedades reconozca inicialmente una propiedad de dependencia en un tipo que no registró esa propiedad de dependencia.
Esta firma no permite especificar metadatos. Cuando se usa este método, los metadatos se generan automáticamente para el nuevo DependencyProperty y su tipo de propietario. Los metadatos generados automáticamente son el resultado de los metadatos combinados de todos los tipos base que tienen definida esta propiedad. Si no hay metadatos combinados disponibles, se usan los metadatos predeterminados para la propiedad . Si la propiedad se registra mediante el RegisterAttached método , los metadatos predeterminados son los mismos que los metadatos que se crean cuando RegisterAttached se llamó a . De lo contrario, el PropertyMetadata objeto se crea con la DefaultValue propiedad establecida en el valor predeterminado del tipo de propiedad y todas las demás propiedades de PropertyMetadata se establecen en null
. Use la AddOwner(Type, PropertyMetadata) firma si desea proporcionar metadatos para la versión de la propiedad de dependencia como se ha agregado al tipo proporcionado.
El valor devuelto de este método se usa normalmente para declarar y exponer la propiedad de dependencia almacenando un identificador de propiedad de dependencia. El identificador proporciona acceso a la propiedad de dependencia si desea llamar a las API del sistema de propiedades en la propiedad de dependencia, especialmente cuando existe en la clase de propietario de adición. Se debe usar el mismo nombre de propiedad para el propietario original y el propietario agregado para indicar la funcionalidad similar. Debe usar el DependencyProperty valor devuelto del método para definir el identificador de AddOwner propiedad de dependencia y también para declarar contenedores de propiedades CLR, para las propiedades de dependencia que se agregan a los tipos mediante AddOwner.
La AddOwner metodología recomendada anteriormente se usa al crear las propiedades de dependencia que se declaran en WPF. Por ejemplo, y BorderControl definen una BorderBrush
propiedad de dependencia, que tiene una funcionalidad similar.
Control define su BorderBrush
propiedad en el sistema de propiedades llamando AddOwner a según el propietario Border original y su identificador de propiedad de dependencia registrada BorderBrushProperty . A AddOwner continuación, el valor devuelto se usa para establecer un nuevo campo estático DependencyProperty (BorderBrushProperty) para esa propiedad en el propietario agregado y también se declara un BorderBrush
contenedor de propiedades.
Se aplica a
AddOwner(Type, PropertyMetadata)
Agrega otro tipo como propietario de una propiedad de dependencia que ya se ha registrado y ofrece los metadatos de propiedad de dependencia para la propiedad de dependencia como se verá en el tipo de propietario proporcionado.
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
Parámetros
- ownerType
- Type
Tipo que se va a agregar como propietario de esta propiedad de dependencia.
- typeMetadata
- PropertyMetadata
Metadatos que califican la propiedad de dependencia tal como existe en el tipo proporcionado.
Devoluciones
Referencia al identificador DependencyProperty original que identifica la propiedad de dependencia. Este identificador debe exponerse mediante la adición de la clase como un campo public static readonly
.
Comentarios
Este método permite al sistema de propiedades reconocer inicialmente una propiedad de dependencia en un tipo que no registró esa propiedad de dependencia en particular.
El valor devuelto de este método se usa para declarar y exponer la propiedad de dependencia, especialmente cuando existe en la clase de propietario de adición. Por lo general, se debe usar el mismo nombre de propiedad para el propietario original y el propietario agregado para indicar la funcionalidad similar. Se recomienda exponer los identificadores, así como los nuevos contenedores de propiedades CLR, para las propiedades de dependencia que se agregan a tipos mediante AddOwner.
La AddOwner metodología recomendada anteriormente se usa al crear API declaradas en WPF. Por ejemplo, y BorderControl definen una BorderBrush
propiedad de dependencia, que tiene una funcionalidad similar.
Control define su BorderBrush
propiedad en el sistema de propiedades llamando al AddOwner propietario Border original y a su identificador de propiedad de dependencia registrada BorderBrushProperty . A AddOwner continuación, el valor devuelto se usa para establecer un campo estático DependencyProperty (BorderBrushProperty) para esa propiedad en el propietario agregado y también se declara un BorderBrush
contenedor de propiedades.
El identificador de propiedad de dependencia del propietario agregado debe usarse para operaciones como GetValue. Sin embargo, las operaciones específicas del tipo que implican tipos o instancias de la clase que hemos agregado como propietario con metadatos diferentes seguirán devolviendo los resultados esperados. Esto es true incluso si el identificador de propiedad de dependencia original (no el propietario agregado) se especifica en llamadas a métodos como GetValue o GetMetadata. Los metadatos del propietario agregado se perpetuan por la AddOwner propia llamada, no necesariamente a los que hace referencia exclusivamente el campo de identificador de clase de propietario. Sin embargo, es recomendable exponer el identificador, así como los nuevos contenedores de propiedades CLR, para las propiedades de dependencia que se agregan a los tipos mediante AddOwner, porque no lo hacen, crea disparidad entre las representaciones CLR y XAML de las propiedades.
Los metadatos proporcionados se combinan con los metadatos de propiedad de la propiedad de dependencia tal y como existe en el propietario base. Las características especificadas en los metadatos base originales se conservarán. Solo las características que se cambiaron específicamente en los nuevos metadatos invalidarán las características de los metadatos base. Algunas características, como DefaultValue, se reemplazan si se especifican en los nuevos metadatos. Otros, como PropertyChangedCallback, se combinan. En última instancia, el comportamiento de combinación depende del tipo de metadatos de propiedad que se usa para la invalidación, por lo que el comportamiento descrito aquí es para las clases de metadatos de propiedad existentes usadas por las propiedades de dependencia de WPF. Para obtener más información, consulte Metadatos de propiedad de dependencia y Metadatos de propiedad de marco.