我在ViewModel中的代码:
public void Insert_Click(object sender, RoutedEventArgs e)
{
System.Windows.MessageBox.Show("Insert_Click");
}
视图中的代码:
<Button Click="{Binding Insert_Click}" Background="Black" Height="56" Name="btnAdd" Width="57">
</Button>
错误:
错误1单击=“{Binding Insert_Click}”无效。 '{捆绑 Insert_Click}'不是有效的事件处理程序方法名称。只有实例 生成的或代码隐藏类的方法是有效的
请告诉我正确的代码
答案 0 :(得分:5)
如果从事件处理程序中删除Binding
语法,则事件挂接仅适用于控件/窗口后面的代码。对于MVVM,它有点不同。如果你将处理程序移动到后面的代码但是我怀疑你想要使用MVVM,你可以使它工作。
这里你真正需要的是使用命令模式
<Button Command="{Binding Insert}" Background="Black" Height="56" Name="btnAdd" Width="57"/>
并查看模型
public ViewModel()
{
Insert = new RelayCommand(Insert_Click);
}
public ICommand Insert { get; private set; }
private void Insert_Click()
{
System.Windows.MessageBox.Show("Insert_Click");
}
这是使用MVVM light
等框架