MVVMLight:双向数据绑定

RaisePropertyChanged**的作用是当数据源改变的时候,会触发PropertyChanged事件达到通知UI更改的目的(ViewModel => View)。

那么View上的变化要怎么通知到数据源呢?
View中文本框绑定内容如下:

{Binding UserInfo.UserName,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}
  1. UpdateSourceTrigger的作用是,当做改变的时候通知数据源我们做了改变。他包含四个值:
效果
Default默认值。
Explicit源不会更新除非你手动来操作。我们可以在旁边增加一个按钮,用于手动更新源。
LostFocus对于Text绑定来说其实就是一个默认值,一旦目标控件失去焦点,源就会被更新。意思是说在离开这个文本框时源才会改变。
PropertyChanged一旦绑定的属性值改变,源会立即更新。敲下键盘源就会自动更新。
  1. Mode
效果
Defaultright-aligned 绑定的模式根据实际情况来定,如果是可编辑的就是TwoWay,只读的就是OneWay。例如文本框,属于可以编辑控件,所以Default指向的是TwoWay;TextBlock用于显示,不需要目标对源的修改,无需指定就默认是OneWay。
OneWay源发生变化,数据就会从源流向目标。
OneTime一次绑定,在绑定创建时使用源数据更新目标,适用于只显示数据而不进行数据的更新。
OneWayToSource将数据从目标发送到源。
TwoWay将源数据发送到目标,但如果目标属性的值发生变化,则会将它们发回给源。

有一个例子非常的形象,使用Silverlight开发一个在线书店。书籍的书名、作者等信息,使用OneTime模式,这些数据一般不会发生变化的;价格信息时使用OneWay模式,因为管理员可能会在一天内调整价格;书籍的剩余数量时用TwoWay模式,数量随着用户的订购会随时发生变化,即目标和源数据都要进行更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值