当前位置: 首页 > article >正文

WPF UpdateSourceTrigger属性

    在编写代码的时候,有时候你会发现一个现象就是:使用TextBox中,后台数据已经刷新,但是界面上未立即刷新,失去焦点才更新界面,这是为什么呢,其根本原因在于:界面上只是未及时刷新,更新参数设置不正确。

    TextBox直接绑定参数,不指明数据改变时如何触发,则是默认的失去焦点(LostFocuse)后才更新界面上显示的值。如下面示例代码

<TextBox Text="{Binding UserName}"/>

    下面以一个示例进行说明,View中文本框绑定内容如下:

<TextBox Text="{Binding UserName,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"/>

    在上述的代码示例中可看到多了两个属性,一个是UpdateSourceTrigger,一个是Mode属性。

    UpdateSourceTrigger的作用是:当做何种改变的时候通知数据源我们做了改变。该属性有如下表格的四种值,详细见下面表格的描述。

枚举类型效果
Default默认值(默认为LostFocuse)
Explicit当应用程序调用 UpdateSource 方法时生效
LostFocus失去焦点的时候触发
PropertyChanged数据属性改变的时候触发

     这边我们直接使用 PropertyChanged,当UI数据改变的时候,我们再通知到数据源去做修改。

**************************************************************************************************************

     其中Mode属性,有五个参数,详细如下表格所示:

枚举类型效果
OneWay源发生变化,数据就会从源流向目标
OneTime  绑定会将数据从源发送到目标;但是,仅当启动了应用程序或 DataContext 发生更改时才会如此操作,因此,它不会侦听源中的更改通知。
OneWayToSource绑定会将数据从目标发送到源
TwoWay绑定会将源数据发送到目标,但如果目标属性的值发生变化,则会将它们发回给源
Default

绑定的模式根据实际情况来定,如果是可编辑的就是TwoWay,只读的就是OneWay

    注意:使用TextBox控件时,UpdateSourceTrigger的默认值是LostFocuse即失去焦点后触发更新界面UI显示,如果需要即时更新则需要设置为PropertyChanged。

**************************************************************************************************************


http://www.kler.cn/a/2232.html

相关文章:

  • SQL,生成指定时间间隔内的事件次序号
  • Zabbix6.0升级为7.2
  • 2.6 网络面试问题
  • 捋一捋相关性运算,以及DTD和NLP中的应用
  • 微信小程序UI自动化测试实践 !
  • 大数据操作实验一
  • 这一次,吃了Redis的亏,也败给了GPT
  • 冒泡 VS 插入 VS 选择——谁更胜一筹?(附排序源码)
  • 【iOS】—— ARC学习
  • 学习前端day01
  • 【百面成神】Redis基础11问,你能坚持到第几问
  • 瑞萨Renesas RA2L1 开发板测评(2)--LED闪烁
  • web前端框架——Vue的特性
  • Python程序员看见一个好看的手机壁纸网站,开撸!
  • Linux操作系统ARM体系结构处理器机制原理与实现
  • Vue面试题 路由守卫
  • 【Hive】HQL
  • 【2023新星计划 】博客创作指导 活动解读
  • ChatGPT应用场景与工具推荐
  • GPT-4是个编程高手,真服了!
  • MyBatis --- 缓存、逆向工程、分页插件
  • 【K8S系列】深入解析Pod对象(一)
  • MySQL-触发器
  • 继承和派生
  • vue后台管理系统
  • 网络安全工具大合集