WPF UpdateSourceTrigger 界面数据源更新

在项目中,类似TextBox/TextBlock控件,后台数据已经刷新,但是界面上未立即刷新,失去焦点才更新界面,原因:参数设置不正确

View中文本框绑定内容如下:

<!--1 属性更新则刷新界面绑定数据-->
<TextBlock Text="{Binding UserName,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"/>

<!--2 失去焦点后刷新界面绑定数据-->
<TextBlock Text="{Binding No, Mode=TwoWay,UpdateSourceTrigger=LostFocus, ValidatesOnNotifyDataErrors=True}"/>

大家会看到多了两个属性,一个是UpdateSourceTrigger,一个是Mode属性。

UpdateSourceTrigger的作用是 当做何种改变的时候通知数据源我们做了改变。

枚举类型                                 效果

Default                         默认值(默认为LostFocuse)

Explicit                         当应用程序调用 UpdateSource 方法时生效

LostFocus                     失去焦点的时候触发

PropertyChanged         数据属性改变的时候触发

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

如果指定UpdateSourceTrigger属性值设置的话,则UpdateSourceTrigger = Default

属性就是Mode,他有五个参数:

枚举类型                             效果

OneWay                         源发生变化,数据就会从源流向目标

OneTime                        绑定会将数据从源发送到目标;但是,仅当启动了应用程序或 DataContext 发生更改时才会如此操作,因此,它不会侦听源中的更改通知。

OneWayToSource          绑定会将数据从目标发送到源

TwoWay                         绑定会将源数据发送到目标,但如果目标属性的值发生变化,则会将它们发回给源

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值