Question WPF/XAML simple. En XAML, comment puis-je référencer le Soi/cet objet dans un contexte donné? Dans une application très basique avec une fenêtre principale, un contrôle et une propriété C# codée de la fenêtre, je veux lier une propriété du contrôle à la propriété codée à la main de la fenêtre.Liaison à soi/'this' dans XAML
Dans le code, ce qui est très facile - dans le constructeur de la fenêtre, j'ai ajouté ceci:
Binding bind = new Binding();
bind.Source = this;
bind.Path = new PropertyPath("ButtonWidth");
button1.SetBinding(WidthProperty, bind);
De toute évidence, j'ai une propriété appelée ButtonWidth, et un contrôle appelé button1. Je n'arrive pas à comprendre comment faire cela en XAML. Diverses tentatives comme l'exemple suivant n'a pas fonctionné:
<Button x:Name="button1" Width="{Binding Source=Self Path=ButtonWidth}"/>
<Button x:Name="button1" Width="{Binding RelativeSource={RelativeSource Self} Path=ButtonWidth}"/>
etc
Merci
Merci beaucoup pour cet article. Cela m'a beaucoup aidé! J'ai cherché une bonne solution 3 heures maintenant. –
J'ai un DataGrid où si l'utilisateur accède à l'une des commandes MenuItem de ContextMenu en ligne via un KeyBinding d'InputBinding dont CommandParameter = "{Liaison ElementName = MyDataGrid, Path = SelectedItems}", il passera les SelectedItems à l'ICommand lié. Cependant, null est passé s'il est accédé via le ContextMenu. J'ai essayé CommandParameter = "{Binding SelectedItems}", "{Liaison ElementName = MyDataGrid, Chemin = SelectedItems}", "{Liaison RelativeSource = {RelativeSource FindAncestor, AncestorType = {x: Type DataGrid}}, Chemin = SelectedItems}" . J'ai défini le paramètre CommandParameter avant la commande. – Tom