|
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
|
Traducción
Original
|
Información general sobre propiedades asociadas
Este tema contiene las secciones siguientes.
- Requisitos previos
- Por qué usar propiedades asociadas
- Propiedades asociadas en XAML
- Cómo el tipo propietario utiliza las propiedades asociadas
- Propiedades asociadas en código
- Metadatos de propiedad asociados
- Propiedades asociadas personalizadas
- Obtener más información sobre propiedades asociadas
- Temas relacionados
<DockPanel> <CheckBox DockPanel.Dock="Top">Hello</CheckBox> </DockPanel>
Implementación de propiedad asociada en WPF
-
El tipo que define la propiedad asociada se ha diseñado de modo que pueda ser el elemento primario de los elementos que establecerán los valores de la propiedad asociada. El tipo recorre a continuación en iteración sus objetos secundarios mediante lógica interna respecto de alguna estructura de árbol de objetos, obtiene los valores y actúa sobre esos valores de alguna manera. -
El tipo que define la propiedad asociada se utilizará como elemento secundario para una variedad de posibles elementos principales y modelos de contenido. -
El tipo que define la propiedad asociada representa un servicio. Otros tipos establecen valores para la propiedad asociada. A continuación, cuando el elemento que estableció la propiedad se evalúa en el contexto del servicio, los valores de propiedad asociados se obtienen a través de lógica interna de la clase de servicio.
Ejemplo de una propiedad asociada definida por el elemento primario
Cuándo crear una propiedad asociada
Cómo crear una propiedad asociada
Nota
|
|---|
|
|
El descriptor de acceso Get
-
El objeto target se puede especificar como un tipo más específico en la implementación. Por ejemplo, el método DockPanel.GetDock establece el tipo del parámetro como UIElement, porque la propiedad asociada solamente está destinada a establecerse en instancias de UIElement. -
El valor devuelto se puede especificar como un tipo más específico en la implementación. Por ejemplo, el método GetDock define el tipo como Dock, porque el valor solamente se puede establecer en esa enumeración.
El descriptor de acceso Set
-
El objeto target se puede especificar como un tipo más específico en la implementación. Por ejemplo, el método SetDock establece el tipo como UIElement, porque la propiedad asociada solamente está destinada a establecerse en instancias de UIElement. -
El objeto value se puede especificar como un tipo más específico en la implementación. Por ejemplo, el método SetDock define el tipo como Dock, porque el valor solamente se puede establecer en esa enumeración. Recuerde que el valor para este método es la entrada procedente de cargador de XAML cuando encuentra la propiedad asociada en un uso de propiedad asociada en el marcado. Esa entrada es el valor especificado como valor de atributo de XAML en el marcado. Por consiguiente, debe haber compatibilidad con conversión de tipos, serializador de valor o extensión de marcado para el tipo que se utilice, de modo que se pueda crear el tipo adecuado a partir del valor del atributo (que, en última instancia, no es nada más que una cadena).
public static readonly DependencyProperty IsBubbleSourceProperty = DependencyProperty.RegisterAttached( "IsBubbleSource", typeof(Boolean), typeof(AquariumObject), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender) ); public static void SetIsBubbleSource(UIElement element, Boolean value) { element.SetValue(IsBubbleSourceProperty, value); } public static Boolean GetIsBubbleSource(UIElement element) { return (Boolean)element.GetValue(IsBubbleSourceProperty); }
Atributos de propiedad asociada
-
Para obtener más información sobre cómo crear una propiedad asociada, vea Cómo: Registrar una propiedad asociada. -
Para ver escenarios de uso más avanzado para las propiedades de dependencia y las propiedades asociadas, vea Propiedades de dependencia personalizadas. -
También es posible registrar una propiedad como una propiedad asociada y como una propiedad de dependencia, pero continuar exponiendo las implementaciones "contenedoras". En este caso, la propiedad se puede establecer en ese elemento, o en cualquier otro con el XAML adjunta sintaxis de propiedad. Un ejemplo de una propiedad con un escenario adecuado para usos estándar y asociados es FrameworkElement.FlowDirection.
Nota