我有一个WPF应用程序,它有两个窗口作为视图(MVVM(。在第一个视图中,命令的绑定效果很好,尽管在第二个视图中命令不会触发(两个窗口都访问相同的视图模型(。它们是否绑定到按钮或关键事件等并不重要。我注意到一件事;在属性框中,命令绑定在命令文本框中不可见,尽管我想应该是这样。
另一件事需要注意:在第一个视图点击按钮后,第二个窗口/视图将显示+第一个窗口仍然可见。数据内容也将委托给第二个视图。
这里是我的代码序列:
<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...
这就是我处理数据内容传输的方式:
LiederlisteView MeineLiederlisteView = new LiederlisteView();
MeineLiederlisteView.DataContext = this;
MeineLiederlisteView.ShowDialog();
MeineLiederlisteView.Focus();
您试图将第二视图的DataContext绑定到第一视图,而不是第一视图的DataContext。
尝试更换
MeineLiederlisteView.DataContext = this;
带有
MeineLiederlisteView.DataContext = this.DataContext;