1

Google と StackOverflow をよく検索しましたが、問題の解決策はありませんでした。

2 つの 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 オブジェクトを渡す代わりに、MainWindowx:Name="dockingManager"から DockingManager を渡したいと思います。しかし、オブジェクトを名前で参照しようとすると失敗します...

私は次のバインディングを試しました:

CommandParameter="{Binding ElementName=dockingManager}"
CommandParameter="{Binding ElementName=dockingManager, RelativeSource={RelativeSource AncestorType=Window}}"

dockingManagerでは、xaml 内の ElementTree からオブジェクト () を見つけて参照するにはどうすればよいでしょうか。コード ビハインドで余分なコードを使用したくない。

4

3 に答える 3