首页 / 知识
关于wpf:TextBox.TextChanged
2023-04-14 22:29:00

TextBox.TextChanged & ICommandSource我正在为WPF UI遵循M-V-VM模式。我想将一个TextBox的TextChanged事件的命令连接到ViewModel类中的命令。我可以构想完成此任务的唯一方法是从TextBox控件继承,并实现ICommandSource。然后,我可以指示要从TextChanged事件中触发该命令。对于看起来如此简单的东西来说,这似乎太多了。 有没有比将TextBox子类化并实现ICommandSource更为简便的方法来将TextChanged事件连接到我的ViewModel类? 首先,您肯定已考虑使用PropertyChanged的UpdateSourceTrigger将双向数据绑定到您的视图模型。这样,每次更改文本时都会调用绑定到的属性的属性设置器? 如果这还不够,那么我将使用"附加行为"解决此问题。在朱利安·多明格斯(Julian Dominguez)的博客中,您将找到一篇有关如何在Silverlight中执行非常相似的操作的文章,该文章应易于适应WPF。 基本上,在静态类(称为TextBoxBehaviours)中,定义一个名为(也许)ICommand类型的TextChangedCommand的附加属性。为该属性连接一个OnPropertyChanged处理程序,并在该处理程序中,检查是否在TextBox上设置了该属性;如果是,则在文本框上的TextChanged事件中添加一个处理程序,该处理程序将调用属性中指定的命令。 然后,假设您的视图模型已分配给View的DataContext,则可以使用它:
使用事件绑定和命令方法可能不是正确的选择。 您可能要考虑对VM中的字符串字段使用数据绑定。这样,您可以从那里对命令或函数进行调用,而无需完全关心UI。
您不仅可以处理TextChanged事件并从那里执行命令吗?
就像您说的那样, 替代方法是创建一个 |
最新内容
相关内容
linux命令暂停下载?
linux命令暂停下载?,系统,代码,暂停,第一,服务,管理,命令,进程,程序,接线,linux下nginx停止命令首先,连接相应linux主机,进入到linux命令行状态共享盘挂载命令linux?
共享盘挂载命令linux?,系统,信息,服务,设备,电脑,名字,情况,网络,命令,磁盘,linux挂载(mount)和取消挂载(umount)windows系统文件夹用法说明:molinux管理磁盘命令?
linux管理磁盘命令?,系统,情况,管理,设备,报告,单位,数据,信息,命令,磁盘,linux下挂载磁盘的命令是什么?sudo mkdir /mnt/mydisk ` 挂载磁盘:使linux三十个基本命令?
linux三十个基本命令?,工作,地址,系统,信息,命令,管理,目录,单位,数据,生产,linux基本操作命令linux常用命令有pwd命令、cd命令、ls命令、catlinux查询ip命令?
linux查询ip命令?,地址,网络,信息,设备,系统,电脑,终端,命令,中心,技术指标,linux查询ip地址命令1、输入以下命令:ipaddrshow。每个设备的IP地linux命令赋予权限?
linux命令赋予权限?,系统,密码,档案,权限,数字,地址,用户,文件,命令,目录,详解Linux系统中的文件权限设置现在,假设有一文件夹 TEST,里面有一些linux命令行重命名?
linux命令行重命名?,图片,名字,名称,软件,代码,文件,命令,文件名,批量,方面,Linux下批量修改文件名1、Linux下修改文件名有mv和rename。 其中mlinux创建命令简写?
linux创建命令简写?,系统,数据,命令,文件,环境,档案,位置,文件夹,目录,终端,LINUX中,创建文件夹、文件命令及清除命令。1、创建文件夹mkdir命linux文件常用命令?
linux文件常用命令?,工作,地址,信息,系统,命令,目录,标准,情况,管理,常用命令,linux常用命令及用法linux系统常用操作命令如下:ls:全拼list,功能linux命令10分类?
linux命令10分类?,工作,系统,信息,管理,命令,地址,目录,数据,位置,单位,常用的linux命令linux系统常用操作命令如下:ls:全拼list,功能是列出目录linux命令创建pkg?
linux命令创建pkg?,名称,文件,命令,系统,首次,数据,位置,不了,时间,名字,linux新建文件命令是什么?1、终端下键入:touch加文件名,这样就创建了一linux防火墙的命令?
linux防火墙的命令?,系统,软件,服务,状态,防火墙,命令,代码,密码,公共,管理,linux关闭防火墙命令linux关闭防火墙命令:service iptables stop。