lightningwen
2018-01-15 09:54
采纳率: 100%
浏览 1.3k
已采纳

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应该要更新。
如有知道,请告知,谢谢

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • hxycsdn9159 2018-01-15 10:17
    已采纳

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

    打赏 评论
  • hxycsdn9159 2018-01-15 11:00

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

    打赏 评论

相关推荐 更多相似问题