Я много искал в Google и StackOverflow, но ничего не ответило на мою проблему.
У меня есть два файла Xaml:
MainWindow.xaml
<Window x:Name="mainWindow">
<Window.DataContext>
<!-- Instantiate ViewModel of the MainWindow -->
<vm:MainWindowViewModel x:Name="viewModel"/>
</Window.DataContext>
<!-- Create the Menu of the MainWindow -->
<custom:MainMenu Grid.Row="0"/>
<ad:DockingManager x:Name="dockingManager">
<!-- ... -->
</Window>
И MainMenu.xaml
<UserControl>
<Menu>
<MenuItem Header="{t:Translate MENU_LAYOUT_SAVE}" Command="{Binding SaveLayoutCommand}" CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=Window}}"/>
<MenuItem Header="{t:Translate MENU_LAYOUT_LOAD}" Command="{Binding LoadLayoutCommand}" CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=Window}}"/>
</Menu>
</UserControl>
И тут возникает моя проблема. Вместо передачи объекта Mainwindow я хочу передать DockingManager x:Name="dockingManager"
из MainWindow. Но если я попытаюсь сослаться на объект по его имени, это не удастся...
Я пробовал следующие привязки:
CommandParameter="{Binding ElementName=dockingManager}"
CommandParameter="{Binding ElementName=dockingManager, RelativeSource={RelativeSource AncestorType=Window}}"
Итак, как я могу найти и сослаться на объект (dockingManager
) из ElementTree в xaml. Я хочу избежать использования дополнительного кода в Code-behind.