我通过 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>
Run Code Online (Sandbox Code Playgroud)
和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>
Run Code Online (Sandbox Code Playgroud)
在这里我的问题发生了。我想x:Name="dockingManager"从 MainWindow传递 DockingManager ,而不是传递 Mainwindow 对象。但是,如果我尝试通过名称引用该对象,则会失败...
我尝试了以下绑定:
CommandParameter="{Binding ElementName=dockingManager}"
CommandParameter="{Binding ElementName=dockingManager, RelativeSource={RelativeSource AncestorType=Window}}"
Run Code Online (Sandbox Code Playgroud)
那么我如何才能dockingManager从 xaml 中的 …