WPF 如何实现事件绑定 (MVVM)

这篇具有很好参考价值的文章主要介绍了WPF 如何实现事件绑定 (MVVM)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是事件绑定?

首先说到绑定,一般是在WPF 中常见的,因为WPF中有一个比较好用的框架叫做

MVVM

所以View层的按钮等元件的的动作都是需要和后台ViewModel 中的函数进行绑定的。

如 我们最常见的按钮的command 绑定

 Command="{Binding Btncommand}" CommandParameter="write"

这里面的command 是命令,不是事件

如果点击图片,或者按钮抬起来的时候需要触发一些命令的时候就需要使用事件绑定。

为什么要用到事件绑定?

但是可以想一下,如果想说按钮弹起时有另外一个动作要执行,这个时候需要怎么办?

答: 使用事件绑定

当然在winform 中由于事件就是写在后台的,所以直接写不需要使用绑定,但是WPF 如果使用MVVM 就不可以这样了,否则就会有耦合了;

事件绑定的步骤

事件绑定的实现比较简单,但是目前在网上搜索的资料都是比较旧的实现方式,而且有时后版本不兼容,下面介绍目前新版本的实现方式:

step1:在nuget 管理中增加 Microsoft.Xaml.Interactions 工具

WPF 如何实现事件绑定 (MVVM)

step2:

然后再xmal 中引用该命名空间

      xmlns:i="http://schemas.microsoft.com/xaml/behaviors"

step3:

事件绑定的写法如下:

                <Button Content="xxx"  Width="120" Height="40" >
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="MouseDoubleClick">
                            <i:InvokeCommandAction Command="{Binding Btncommand}"  CommandParameter="read" />
                        </i:EventTrigger>
                        <i:EventTrigger EventName="Click">
                            <i:InvokeCommandAction Command="{Binding Btncommand}"  CommandParameter="read" />
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                    
                </Button>

这样便实现了事件的绑定

当然也会遇见很多事件失效的问题如:

就是 关于MouseLeftButtonDown事件失效的问题

不过可以参考这个文章:

WPF高级教程(八)专题:事件_白话屋-CSDN博客文章来源地址https://www.toymoban.com/news/detail-439906.html

到了这里,关于WPF 如何实现事件绑定 (MVVM)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WPF控件:密码框绑定MVVM

    以下是一种使用 MVVM 模式的方法: 首先,在 ViewModel 中添加一个属性来保存密码,我们可以使用 SecureString 类型。   创建一个附加属性来处理 PasswordBox 的密码变化,并将其绑定到 ViewModel 中的命令。   在 XAML 中,使用行为触发器来触发命令。 查看密码框的内容。      

    2024年04月24日
    浏览(36)
  • MVVM架构下wpf的密码框绑定

    背景:TextBox可以很轻松地对Text使用Binding,绑定ViewModel类里面的属性         即:Text=\\\"{Binding LoginId}\\\"/         但是使用PasswordBox的密码框就不行了,因为没有Text这个属性 那么就要自己实现一个PasswordBox的帮助类了 第一步添加Helper类 第二步:到xaml中使用帮助类添加PasswordB

    2024年02月09日
    浏览(40)
  • WPF——事件绑定命令

    我们都知道WPF中的命令在结合MVVM模式的框架使用之后(框架重新实现了ICommand),可以解耦。但并不是所有控件都可以绑定命令的,比如TextBox、ComboBox等。在使用这类控件时,如果你想让它的某个事件激发时调用ViewModel中的方法,往往需要把ViewModel中的方法暴露给View,然后在

    2024年02月05日
    浏览(85)
  • WPF事件绑定到Command命令

    第一步: 第二步: 第三步: 如果有问题请及时留言,仅供学习~谢谢.

    2024年02月15日
    浏览(44)
  • 如何让WPF中的ValidationRule实现参数绑定

    应用开发过程中,常常会对用户输入内容进行验证,通常是基于类型、范围、格式或者特定的要求进行验证,以确保输入符合预期。例如邮箱输入框校验输入内容是否符合邮箱格式。在WPF中,数据模型允许将 ValidationRules 与 Binding 对象关联,可以通过继承 ValidationRule 类并重写

    2024年02月12日
    浏览(42)
  • Vue (v-bind指令、el与data的两种写法、理解MVVM、数据代理、V-no事件处理、双向数据绑定V-model、登陆页面实现

    V-no用于监听DOM对象 v-model 指令用来在 input、select、textarea、checkbox、radio 等表单控件元素上创建双向数据绑定,根据表单上的值,自动更新绑定的元素的值。 按钮的事件我们可以使用 v-on 监听事件,并对用户的输入进行响应。 下拉选项实例:

    2024年01月23日
    浏览(61)
  • WPF 绑定binding都有哪些事件

    主要包含以下几个事件: 1. UpdateSourceTrigger:用于控制数据绑定如何更新源数据的事件 PropertyChanged:每当目标属性的值更改时,将立即更新源属性。 LostFocus:当目标元素失去焦点时,更新源属性。 Explicit:只有在调用BindingExpression.UpdateSource方法时才会更新源属性。 Default:与

    2024年02月05日
    浏览(56)
  • WPF中TextBox使用KeyBinding绑定命令,键盘事件

        最近在做一个扫码枪识别条形码的功能,TextBox文本按回车键或者是扫码枪识别条形码自动触发查询功能,由于架构采用的是MVVM的开发模式,所以,刚开始采用KeyBinding的方式绑定命令,然后实现该功能;代码如下: 对应的ViewModel中绑定命令事件,代码如下所示     初步

    2024年02月14日
    浏览(51)
  • 关于WPF中Command绑定传参数以及将命令绑定到其它事件的方法

    前言:在WPF中,将命令绑定到一个Button的Command属性中是非常简单的事情,例如: 但是很多时候,我们要实现其它事件的命令绑定,以此实现彻底的MVVM开发模式,那就得用到微软另外一个神器了!它就是程序集System.Windows.Interactivity,在网上可以下载System.Windows.Interactivity.dll这

    2024年02月11日
    浏览(42)
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件

    在我们开发的前端项目中,往往为了方便,都需对一些控件进行自定义的处理,以便实现快速的数据绑定以及便捷的使用,本篇随笔介绍通过抽取常见字典列表,实现通用的字典类型绑定;以及通过自定义控件的属性处理,实现系统字典内容的快捷绑定的操作。 在我们创建下

    2024年02月08日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包