WPF——事件绑定命令

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

一、前言

我们都知道WPF中的命令在结合MVVM模式的框架使用之后(框架重新实现了ICommand),可以解耦。但并不是所有控件都可以绑定命令的,比如TextBox、ComboBox等。在使用这类控件时,如果你想让它的某个事件激发时调用ViewModel中的方法,往往需要把ViewModel中的方法暴露给View,然后在事件处理器中调用。这种调用方式增加了耦合度,虽然从短期实现来讲也没啥问题,但会让强迫症患者非常难受。


二、解决方法

目前收集了两种解决方法:

2.1. InputBindings

这使UIElement类自带的一个属性,
WPF——事件绑定命令
你可以给它添加鼠标按键绑定和键盘按键绑定:

			<TextBox Text="{Binding CurrentPage}" >
                <TextBox.InputBindings>
                    <KeyBinding Command="{Binding GotoPageCommand}" Key="Return"/>
                </TextBox.InputBindings>
            </TextBox>

所以这也算是环境自带的一种方法,一定程度上能解决大部分问题。常见的比如,在文本框按下回车键触发命令,它可以轻松实现。

但有时,我们想给环境自带的事件绑定命令,这就需要用到第二种方法了。

2.2. Behaviors包

Microsoft.Xaml.Behaviors.Wpf虽然不是环境自带的,但你可以通过NuGet轻松获得它。
WPF——事件绑定命令
使用方式也非常简单,
资源引用:

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

XAML中调用:

		<ComboBox ItemsSource="{Binding Gasolines}" SelectedIndex="{Binding CurrentIndex}">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Type}"/>
                </DataTemplate>
            </ComboBox.ItemTemplate>
            <!--Behaviorsd的事件触发器使用-->
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="SelectionChanged">
                    <i:InvokeCommandAction Command="{Binding DisplayPriceCommand}" />
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </ComboBox>

三、结语

两种都属于应用型的方法,会用即可,不必深究。文章来源地址https://www.toymoban.com/news/detail-451894.html

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

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

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

相关文章

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

    首先说到绑定,一般是在WPF 中常见的,因为WPF中有一个比较好用的框架叫做 MVVM 所以View层的按钮等元件的的动作都是需要和后台ViewModel 中的函数进行绑定的。 如 我们最常见的按钮的command 绑定 这里面的command 是命令,不是事件 如果点击图片,或者按钮抬起来的时候需要触

    2024年02月04日
    浏览(34)
  • WPF 绑定binding都有哪些事件

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

    2024年02月05日
    浏览(41)
  • 【WPF】异步任务更新UI、绑定命令、绑定字符串属性

    WPF异步任务 主界面 在视图模型中定义命令: 在主界面xaml中绑定命令:  创建命令实例:

    2024年02月09日
    浏览(49)
  • WPF MvvM框架(MvvMLight,Microsoft Toolkit Mvvm,CommunityToolkit.Mvvm;鼠标,键盘,手写等事件绑定如:抬起按下事件)

    目录 1.MvvMLight(已废弃) 2. Microsoft Toolkit Mvvm(已废弃)  3.CommunityToolkit.Mvvm框架 4.Mvvm中的事件绑定 4.1 DataGrid表中按钮点击事件 4.2 绑定 鼠标事件,键盘事件,手写笔事件,多点触控事件 5.和PLC设备建立联系(联调)    本文中,继承接口,同步数据方法,command用法均一致; 1.继

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

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

    2024年02月12日
    浏览(30)
  • WPF中的绑定知识详解(含案例源码分享)

    ✅作者简介:2022年 博客新星 第八 。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:WPF 案例及知识分享专栏 ✨特色专栏:乐趣国学-心性养成之路 🥭本文内容:WPF中的绑定知识

    2024年02月08日
    浏览(31)
  • JavaScript中的代理和反射:实现数据绑定和事件监听

    在JavaScript中,代理(Proxy)和反射(Reflect)是两个重要的概念,它们可以用于实现数据绑定和事件监听等功能。在本文中,我们将会探讨代理和反射的概念,以及如何使用它们实现数据绑定和事件监听。 代理是一种能够截获并拦截对象访问的机制。它可以用于在对象上定义

    2023年04月10日
    浏览(31)
  • 前端react入门day02-React中的事件绑定与组件

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 React中的事件绑定 React 基础事件绑定 使用事件对象参数  传递自定义参数  同时传递事件对象和自定义参数  React中的组件  组件是什么 React组件 useState  修改状态的规

    2024年02月06日
    浏览(69)
  • 解释Property、ValueProvider和DataProvider在数据绑定中的作用。如何处理Vaadin组件中的事件?

    解释Property、ValueProvider和DataProvider在数据绑定中的作用 在数据绑定的上下文中,Property、ValueProvider和DataProvider各自扮演着重要的角色。以下是对它们作用的详细解释: Property 在数据绑定的语境中,Property通常指的是对象的一个特性或属性,它持有与对象相关的某种数据。在诸

    2024年04月11日
    浏览(58)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包