Tengo un WPF Window
, y en algún lugar hay un ListView
lugar al que enlazo List<string>
.
Ahora, en algún lugar de mi ListView
hay un TextBox
y la Content
propiedad está configurada en {Binding}
.
Pero esta es la taquigrafía. ¿Cómo escribo el enlace completo para enlazarlo a sí mismo?
{Binding Path=Self}
no funciona, tampoco lo hace {Binding Self}
(donde el último es un atajo para el primero).
wpf
data-binding
binding
self
Serpiente
fuente
fuente
Respuestas:
Respuesta corta : no
{Binding}
es un atajo para "vincularse a sí mismo" (en el sentido de RelativeSource.Self ). Más bien, es equivalente a , que se une a la fuente actual.{Binding}
{Binding Path=.}
Para elaborar : un enlace tiene una fuente y una ruta . Puede hacer un "enlace consigo mismo", por ejemplo, utilizando
<myUIControl myProperty="{Binding RelativeSource={RelativeSource Self}, Path=x}" />
Sin embargo, esto establece la fuente en el control en sí, por lo que intentará acceder a la propiedad
x
del control de la interfaz de usuario (en lugar de a la propiedadx
del contexto de datos actual). Por cómo entendí tu pregunta, esto no es lo que quieres; en particular, no es lo que{Binding}
hace:{Binding}
mantiene la fuente como está (generalmente laDataContext
de algún elemento padre) y se une a la fuente misma (equivalente aPath=.
).fuente
CommandParameter="{Binding ElementName=MyDataGrid, Path=SelectedItems}"
, pasará los SelectedItems al Bound ICommand. Sin embargo,null
se pasa si se accede a través del ContextMenu. He intentadoCommandParameter=
"{Binding} SelectedItems",
"{Binding ElementName = MiDataGrid, Path = SelectedItems}" `y"{Binding RelativeSource={RelativeSource Self}, Path=SelectedItems}"
.