2009-08-06 23 views

Respuesta

65

Las propiedades adjuntas son un tipo de propiedad de dependencia. La diferencia está en cómo se usan.

Con una propiedad adjunta, la propiedad se define en una clase que no es de la misma clase para la que se está utilizando. Esto se usa generalmente para el diseño. Buenos ejemplos son Panel.ZIndex o Grid.Row: usted aplica esto a un control (es decir, Button), pero en realidad está definido en Panel o Grid. La propiedad está "adjunta" a la instancia del botón.

Esto permite que un contenedor, por ejemplo, cree propiedades que se puedan usar en cualquier elemento de UIelement.

En cuanto a las diferencias de implementación, básicamente se trata simplemente de utilizar Registrarse frente a registro cuando se define la propiedad.

+7

¿Pero cuál es exactamente la diferencia? Por lo que he visto, puede adjuntar una propiedad no conectable a otro código de acceso (creo que esto está bloqueado en XAML). ¿Quizás esa es la diferencia? – MarqueIV

5

Las propiedades adjuntas están pensadas básicamente para los elementos del contenedor. Por ejemplo, si tiene una cuadrícula y tiene grid.row, esto se considera una propiedad adjunta de un elemento de cuadrícula. También puede usar esta propiedad en texbox, botón etc. para establecer su lugar en la grilla.

La propiedad de dependencia es como si la propiedad pertenece básicamente a otra clase y se usa en otra clase. por ejemplo: como si tuviera un rectángulo aquí, la altura y el ancho son propiedades regulares de un rectángulo, pero la izquierda y la parte superior son propiedad de la dependencia, ya que pertenece a la clase Canvass.

-2

Las propiedades adjuntas son un tipo especial de DependencyProperties. Le permiten asociar un valor a un objeto que no sabe nada sobre este valor. Un buen ejemplo para este concepto son los paneles de diseño. Cada panel de diseño necesita datos diferentes para alinear sus elementos secundarios. El lienzo necesita Top e Left, DockPanel necesita Dock, etc. Dado que puede escribir su propio panel de diseño, la lista es infinita. Como puede ver, no es posible tener todas esas propiedades en todos los controles de WPF. La solución son propiedades adjuntas. Están definidos por el control que necesita los datos de otro control en un contexto específico. Por ejemplo, un elemento alineado por un panel de diseño principal.

0

Creo que se puede definir la propiedad adjunta en la clase o se puede definir en otra clase. Siempre podemos usar propiedades adjuntas para extender los controles estándar de microsoft. Pero la propiedad de dependencia la defines en tu propio control personalizado. p.ej. Puede heredar su control de un control estándar y definir una propiedad de dependencia bajo su propio control y usarlo. Esto es equivalente a definir una propiedad adjunta, y usar esta propiedad adjunta en el control estándar.

Cuestiones relacionadas