我通过 Google 和 StackOverflow 进行了很多搜索,但没有任何答案可以解决我的问题。
我有两个 Xaml 文件:
主窗口.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 对象,我想x:Name="dockingManager"
从 MainWindow 传递 DockingManager。但是,如果我尝试通过其名称引用该对象,它会失败......
我尝试了以下绑定:
CommandParameter="{Binding ElementName=dockingManager}"
CommandParameter="{Binding ElementName=dockingManager, RelativeSource={RelativeSource AncestorType=Window}}"
那么如何dockingManager
从 xaml 中的 ElementTree 中找到并引用一个 Object ()。我想避免在代码隐藏中使用额外的代码。