Actualmente estoy trabajando con un control de usuario de WPF (el elemento raíz de mi archivo XAML es "UserControl"), que sé que se aloja dentro de una ventana. ¿Cómo puedo acceder a una propiedad de la ventana utilizando el enlace de datos?¿Qué hace exactamente "RelativeSource FindAncestor" de WPF Data Binding?
¿Alguien sabe por qué simplemente
<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" Path="..." />
no funciona? El mensaje de error que recibo es:
System.Windows.Data Advertencia: 4: No se puede encontrar el origen del enlace con la referencia 'RelativeSource FindAncestor, AncestorType =' System.Windows.Window ', AncestorLevel =' 1 ''.
Editar: Terminé usando una variación en el enfoque de ArsenMkrt, así que acepté su respuesta. Sin embargo, todavía estoy interesado en descubrir por qué FindAncestor no "solo funciona".
dice que ha variado su respuesta, ¿puede publicar lo que realmente hizo? – Miles
Tenga en cuenta que estaba buscando una solución a este problema en el contexto del patrón MVVM. La propiedad de la ventana a la que quería enlazar era en realidad una propiedad del ViewModel de la ventana. – user200783
ArsenMkrt sugirió crear una propiedad en el UserControl y enlazar a eso, luego a su vez (en XAML) vinculando esta propiedad a la propiedad deseada de la Ventana. Sin embargo, con el patrón MVVM, UserControl nunca apareció en XAML, por lo que la segunda parte no fue posible. – user200783