c# - WPF RelayCommand 未在按钮单击时触发
问题描述
我对 WPF 和 MVVM 都没有经验,所以我很可能遗漏了一些东西,但是当我点击我的按钮时,命令没有触发。我的页面上还有一些菜单控件,我以完全相同的方式设置,当我单击它们时,它们的命令按预期工作。
我尝试附加一个单击事件处理程序以确保该按钮确实被单击了。我还尝试附加一个不同的命令,该命令适用于我的菜单控件,而该命令不适用于按钮。
<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
解决方案
调试信息非常有用,但最后我通过将绑定指向数据上下文来解决问题。
<Button x:Name="AddNewNoteBtn" Grid.Row="1" Content="Add Note"
Command="{Binding Path=DataContext.InsertNoteCommand, ElementName=_window}"/>
如果有人对我如何改进这一点有意见,我将不胜感激。谢谢!
推荐阅读
- c# - .net 核心从商店获取证书运行与框架不同
- django - Django 向 API 发送请求,其中 URL 是动态的
- amazon-web-services - 基于标签限制 EC2 访问的 IAM 策略
- webforms - 在 Web 表单附件 URL 中添加令牌值
- javascript - 对字符串进行计数的另一种方法出现在数组中
- javascript - Javascript:在“onkeyup”事件中仅屏蔽信用卡号的前 12 位数字
- ubuntu-18.04 - 口径未在 ubuntu 18.04.03 LTS 下启动
- php - 如何在代码嗅探器中查找和更改规则集?
- c# - 无法理解 MVP Winforms C# 中的被动视图
- java - JPA Hibernate 映射视图 - 查询随机抛出错误