Pregunta simple de WPF/XAML. En XAML, ¿cómo hago referencia al objeto Self/this en un contexto dado? En una aplicación muy básica con una ventana principal, un control y una propiedad codificada C# de la ventana, quiero vincular una propiedad del control a la propiedad codificada a mano de la ventana.Enlace a Self/'esto' en XAML
En el código, esto es muy fácil - en el constructor de la ventana, añadí esto:
Binding bind = new Binding();
bind.Source = this;
bind.Path = new PropertyPath("ButtonWidth");
button1.SetBinding(WidthProperty, bind);
Obviamente, tengo una propiedad llamada ButtonWidth, y un control denominado button1. No puedo entender cómo hacer esto en XAML. Varios intentos como el siguiente ejemplo no han funcionado:
<Button x:Name="button1" Width="{Binding Source=Self Path=ButtonWidth}"/>
<Button x:Name="button1" Width="{Binding RelativeSource={RelativeSource Self} Path=ButtonWidth}"/>
etc
Gracias
Muchas gracias por esta publicación. ¡Me ayudó mucho! He estado buscando una buena solución 3 horas ahora. –
Tengo un DataGrid donde si el usuario accede a uno de sus Comandos de MenuItem de ContextMenu en línea a través de un KeyBinding de InputBinding cuyo CommandParameter = "{Binding ElementName = MyDataGrid, Path = SelectedItems}", pasará los SelectedItems al Bound ICommand. Sin embargo, se pasa null si se accede a través de ContextMenu. He intentado CommandParameter = "{Binding SelectedItems}", "{Binding ElementName = MyDataGrid, Path = SelectedItems}", "{Binding RelativeSource = {RelativeSource FindAncestor, AncestorType = {x: Type DataGrid}}, Path = SelectedItems}" . Establecí CommandParameter antes del comando. – Tom