WPF RelayCommand不触发按钮单击

时间:2019-09-28 10:04:32

标签: c# .net wpf xaml mvvm-light

我对WPF和MVVM都没有经验,所以我很想缺少一些东西,但是当我单击我的按钮时,该命令没有触发。我的页面上还有一些菜单控件,它们的设置方式完全相同,当我单击这些菜单控件时,它们的命令将按预期运行。

我尝试附加一个click事件处理程序,以确保确实单击了该按钮。我还尝试附加一个对菜单控件有效的命令,该命令对按钮无效。

<Button Grid.Row="1" Content="Add Note" 
                                        Command="{Binding InsertNoteCommand}"/>
public ICommand InsertNoteCommand { get; }

public MainViewModel()
{
    InsertNoteCommand = new RelayCommand(InsertNote);
}

private void InsertNote()
{
    Console.WriteLine("Note Inserted!");
}

我还应该提到我正在使用MVVM Light

1 个答案:

答案 0 :(得分:1)

了解调试信息非常有用,但是最后我通过将绑定指向数据上下文来解决了这个问题。

<Button x:Name="AddNewNoteBtn" Grid.Row="1" Content="Add Note" 
                                        Command="{Binding Path=DataContext.InsertNoteCommand,  ElementName=_window}"/>

如果有人对我如何改进它有意见,我将非常感谢。谢谢!