2009-12-15 18 views
64

tengo un WPF Window, y en algún lugar hay un ListView donde se unen a un List<string> a.WPF Enlazar a sí

ahora en algún lugar de mi ListView hay un TextBox y la propiedad Content se establece en {Binding}.

Pero esta es la abreviatura. ¿Cómo escribo el enlace completo para vincularlo?

{Binding Path=Self} no funciona, tampoco lo hace {Binding Self} (donde este último es un atajo para el primero).

+0

Quiero mencionar una publicación relacionada con este tema. La respuesta anterior es totalmente correcta, pero hay un punto que completa la respuesta anterior. Aquí está el [enlace] (http://stackoverflow.com/questions/11995318/how-do-i-bind-to-relativesource-self). – AAAA

Respuesta

202

Respuesta corta: {Binding} es no una abreviatura de "unión a sí mismo" (en el sentido de RelativeSource.Self). Más bien, {Binding}is equivalent to{Binding Path=.}, que se une a la fuente actual.


Para elaborar: Una de unión tiene una fuente y un camino. Usted puede hacer una "unión a sí mismo", por ejemplo, mediante el uso de

<myUIControl myProperty="{Binding RelativeSource={RelativeSource Self}, Path=x}" /> 

Esto, sin embargo, establece el fuente al control de sí mismo, por lo que tratará de acceder a la propiedad x del control de interfaz de usuario (en vez que la propiedad x del contexto de datos actual). De cómo entendí tu pregunta, esto no es lo que quieres; en particular, no es lo que hace {Binding}: {Binding} mantiene la fuente tal como está (generalmente, el DataContext de algún elemento principal) y se une a la fuente misma (equivalente a Path=.).

+1

¡Muchas gracias! – Snake

+1

Buena respuesta, te daría +2 si pudiera. –

+0

¡Qué gran respuesta! –

Cuestiones relacionadas