命令绑定不适用于第二个 window/ 视图

Command Bindings don't work with 2nd window/ view

我有一个 WPF 应用程序,其中有两个 windows 作为视图 (MVVM)。第一个命令绑定效果很好,但第二个视图命令不会触发(两个 windows 访问相同的视图模型)。它们是否绑定到按钮或按键事件等并不重要。我注意到一件事;在属性框中,命令绑定在命令文本框中不可见,但我猜应该是。

还有一件事要提:第二个 window/view 将在从第一个视图单击按钮后显示 + 第一个 window 仍然可见。 Datacontext 也将委托给第二个视图。

这是我的代码序列:

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:vm="clr-namespace:Lobpreis.ViewModels"
    xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic" x:Class="Lobpreis.Views.LiederlisteView"
    mc:Ignorable="d"
    Title="LiederlisteView" WindowStyle="SingleBorderWindow" Height="450" Width="800" >

<Window.DataContext>
    <vm:ShellViewModel/>
</Window.DataContext>

<Window.InputBindings>
    <KeyBinding Key="Down" Command="{Binding PressKeyDown}" />
    <KeyBinding Key="Up"  Command="{Binding PressKeyUp}" />
</Window.InputBindings>

<Grid > etc...

这是我处理 Datacontext 传输的方式:

LiederlisteView MeineLiederlisteView = new LiederlisteView();
        MeineLiederlisteView.DataContext = this;
        MeineLiederlisteView.ShowDialog();
        MeineLiederlisteView.Focus();

您正在尝试将第二个视图的 DataContext 绑定到第一个视图而不是第一个视图的 DataContext。

尝试替换

MeineLiederlisteView.DataContext = this;

MeineLiederlisteView.DataContext = this.DataContext;