【wpf】Bingding的方向和触发的时机

<!--两个方向都可行-->
<TextBox Text="{Binding DM1.Value,UpdateSourceTrigger=PropertyChanged,
    Mode=TwoWay}" Name="textBox"/>
<!--只允许从源到目标-->
<TextBox Text="{Binding DM1.Value,Mode=OneWay}" Name="tb2"/>
<!--史允许从目标到源-->
<TextBox Text="{Binding DM1.Value,UpdateSourceTrigger=PropertyChanged,
    Mode=OneWayToSource}" />
<!--只允许初始化一次-->
<TextBox Text="{Binding DM1.Value,
    Mode=OneTime}"/>

Mode

首先源是指后台数据,目标指,前台显示。

TwoWay:"双向奔赴"。

OneWay 后台数据 -> 前台显示,

OneWayToSource 与OneWay 相反。

OneTime 就只有初始化的时候起作用了。

UpdateSourceTrigger

UpdateSourceTrigger ,表示当前台数据(目标)发送变化时,更新源(后台数据)的时机。(注意:UpdateSourceTrigger 关心的方向是:前台显示->后台数据,所以当Mode为OneWay时,设置这个属性是没有意义的

//
// 摘要:
//     Describes the timing of binding source updates.
public enum UpdateSourceTrigger
{
    //
    // 摘要:
    //     The default System.Windows.Data.UpdateSourceTrigger value of the binding target
    //     property. The default value for most dependency properties is System.Windows.Data.UpdateSourceTrigger.PropertyChanged,
    //     while the System.Windows.Controls.TextBox.Text property has a default value of
    //     System.Windows.Data.UpdateSourceTrigger.LostFocus.
    Default = 0,
    //
    // 摘要:
    //     Updates the binding source immediately whenever the binding target property changes.
    PropertyChanged = 1,
    //
    // 摘要:
    //     Updates the binding source whenever the binding target element loses focus.
    LostFocus = 2,
    //
    // 摘要:
    //     Updates the binding source only when you call the System.Windows.Data.BindingExpression.UpdateSource
    //     method.
    Explicit = 3
}

PropertyChanged 

表示,只要前台发送变化,立马通知源(也就是调用属性的set方法)

LostFocus 

表示控件失去焦点时触发。

Explicit 

通过绑定表达式调用UpdateSource调用后触发。

//获取绑定表达式
BindingExpression bindingExpression = textBox.GetBindingExpression(TextBox.TextProperty);
//调用后触发
bindingExpression.UpdateSource();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code bean

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值