MVVM 中的事件绑定
我在 ViewModel 中的代码:
public void Insert_Click(object sender, RoutedEventArgs e)
{
System.Windows.MessageBox.Show("Insert_Click");
}
View 中的代码:
<Button Click="{Binding Insert_Click}" Background="Black" Height="56" Name="btnAdd" Width="57">
</Button>
错误:
错误 1 Click="{Binding Insert_Click}" 无效。 '{绑定 Insert_Click}' 不是有效的事件处理程序方法名称。唯一实例 生成的或代码隐藏类上的方法是有效的
请显示正确的代码
my code in ViewModel :
public void Insert_Click(object sender, RoutedEventArgs e)
{
System.Windows.MessageBox.Show("Insert_Click");
}
code in View :
<Button Click="{Binding Insert_Click}" Background="Black" Height="56" Name="btnAdd" Width="57">
</Button>
error :
Error 1 Click="{Binding Insert_Click}" is not valid. '{Binding
Insert_Click}' is not a valid event handler method name. Only instance
methods on the generated or code-behind class are valid
Please show me the correct code
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您从事件处理程序中删除
Binding
语法,则事件挂钩仅适用于控件/窗口后面的代码。对于 MVVM 来说有点不同。如果您将处理程序移至后面的代码,您就可以让它工作,但我怀疑您想使用 MVVM。这里你真正需要的是使用命令模式
和视图模型
这是使用诸如 MVVM light 之类的框架
The event hook ups will only work for code behind to the control/window if you remove the
Binding
syntax from the event handler. For MVVM it is a bit different. You can get that to work if you move the handler to the code behind but I suspect you want to use MVVM.Here what you really need is to use the Command pattern
and view model
This is using a framework such as MVVM light