WPF中Binding 有2个源时,怎么有一个不起作用呢?

WPF中Binding 有2个源时,怎么有一个不起作用呢?

问题描述:

图片说明

第1种情况: t2输入,t1不更新

<TextBox x:Name="t1" Text="{Binding  ElementName=t2,Path=Text,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" />
        <TextBox x:Name="t2"/>
        <TextBox x:Name="t3" Text="{Binding  ElementName=t1,Path=Text,Mode=OneWayToSource,UpdateSourceTrigger=PropertyChanged}" />

第2种情况:取消t3绑定, t2输入,t1又能更新。

 <TextBox x:Name="t1" Text="{Binding  ElementName=t2,Path=Text,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" />
        <TextBox x:Name="t2"/>

有些不能理解,按理t3的绑定,应该跟t1的绑定不冲突.
当t2更新时属性变更,t1应该要更新。
如有知道,请告知,谢谢

因为你的OneWayToSource 破坏了 t1的绑定 wpf绑定里面一旦建立了绑定 如果绑定源被第三方改变 这个绑定就会被破坏掉 你可以试试把你的t3 Mode也改为OneWay 不要用OneWayToSource 因为 OneWayToSource 其实改变了绑定源 t1和t2的绑定就被破坏了

用twoway 可以的 只不过系统开销大一点