Proste pytanie WPF/XAML. W XAML, jak mogę odwołać się do Self/tego obiektu w danym kontekście? W bardzo prostej aplikacji z głównym oknem, jednym sterowaniem i zakodowaną własnością C# okna, chcę powiązać właściwość kontrolki z właściwością kodowaną ręcznie okna.Wiązanie do siebie/"to" w XAML
W kodzie, to jest bardzo proste - w konstruktorze na Windows, dodałem to:
Binding bind = new Binding();
bind.Source = this;
bind.Path = new PropertyPath("ButtonWidth");
button1.SetBinding(WidthProperty, bind);
Oczywiście, mam właściwość o nazwie ButtonWidth oraz kontrolę nazwie button1. Nie mogę wymyślić, jak to zrobić w XAML. Różne próby, jak w poniższym przykładzie nie pracowali:
<Button x:Name="button1" Width="{Binding Source=Self Path=ButtonWidth}"/>
<Button x:Name="button1" Width="{Binding RelativeSource={RelativeSource Self} Path=ButtonWidth}"/>
itp
Dzięki
Dziękuję bardzo za ten wpis. Pomogło mi to dużo! Szukałem dobrego rozwiązania 3 godziny. –
Mam DataGrid, gdzie, jeśli użytkownik uzyskuje dostęp do jednego z wbudowanych poleceń MenuItem w MenuItem poprzez KeyBinding InputBinding, którego CommandParameter = "{Binding ElementName = MyDataGrid, Path = SelectedItems}", przekaże SelectedItems do Związanej ICommand. Jednak wartość null jest przekazywana, jeśli jest dostępna przez ContextMenu. Próbowałem już CommandParameter = "{Binding SelectedItems}", "{Binding ElementName = MyDataGrid, Path = SelectedItems}", "{Binding RelativeSource = {RelativeSource FindAncestor, AncestorType = {x: Type DataGrid}}, Path = SelectedItems}" . Ustawiłem CommandParameter przed Command. – Tom