如何从源WPF的lostfocus更新目标?

如何从源WPF的lostfocus更新目标?,wpf,data-binding,Wpf,Data Binding,我的wpf应用程序中有两个文本框tb1和tb2 我希望tb1.text在tb2.text失去焦点时更新tb1.text。 我试过: xaml 绑定的UpdateSourceTrigger属性的默认值是LostFocus,因此如果选择tb2作为绑定目标,则可以在失去焦点时更新tb1或绑定源 现在,您希望绑定在从目标到源的单向模式下工作(tb2->tb1),因此需要将绑定的模式更改为单向到源的 <TextBox Name="tb1" /> <!--tb1.Text is sour

我的wpf应用程序中有两个文本框
tb1
tb2

我希望
tb1.text
tb2.text
失去焦点时更新
tb1.text


我试过:

xaml


绑定
UpdateSourceTrigger
属性的默认值是
LostFocus
,因此如果选择
tb2
作为绑定目标
,则可以在失去焦点时更新
tb1
绑定源

现在,您希望绑定在从目标到源的单向模式下工作(tb2->tb1),因此需要将
绑定的
模式更改为
单向到源的

<TextBox Name="tb1" /> <!--tb1.Text is source of binding-->
<TextBox Name="tb2" Text="{Binding Text, ElementName=tb1, Mode=OneWayToSource}"/> 


如果是单向源到目标使用
单向
,否则使用默认值,即
双向

绑定
更新资源记录器
属性的默认值为
LostFocus
,因此,如果选择
tb2
作为绑定目标,则可以在失去焦点时更新
tb1
绑定源

现在,您希望绑定在从目标到源的单向模式下工作(tb2->tb1),因此需要将
绑定的
模式更改为
单向到源的

<TextBox Name="tb1" /> <!--tb1.Text is source of binding-->
<TextBox Name="tb2" Text="{Binding Text, ElementName=tb1, Mode=OneWayToSource}"/> 


如果是单向源到目标使用
单向
,否则使用默认值,即
双向

您的意思是TextBox?这应该在视图模型中处理。您的意思是TextBox?这应该在视图模型中处理。这样做,但添加了一个不需要的额外绑定。当我更改tb1时,tb2将更改。@yinondontan“添加了一个不需要的额外绑定”-为什么不?这就是路。此外,请编辑您的问题,因为正如已经指出的,目前还不清楚您在寻找什么-您真的是指
TextBlock
s吗?因为我不想在tb1发生变化时更新tb2。@yinondon谢谢您的澄清,我更新了我的答案。太好了!这样做了,但增加了一个额外的绑定,这不是预期的。当我更改tb1时,tb2将更改。@yinondontan“添加了一个不需要的额外绑定”-为什么不?这就是路。此外,请编辑您的问题,因为正如已经指出的,目前还不清楚您在寻找什么-您真的是指
TextBlock
s吗?因为我不想在tb1发生变化时更新tb2。@yinondon谢谢您的澄清,我更新了我的答案。太好了!虽然此代码可以回答问题,但最好解释如何解决问题,并提供代码作为示例或参考。只有代码的答案可能会令人困惑,并且缺乏上下文。@RobertColumbia此代码非常简单,任何解释都只会使问题变得更复杂。虽然此代码可能会回答问题,但最好解释如何解决问题,并提供代码作为示例或参考。只有代码的答案可能会令人困惑,并且缺少上下文。@RobertColumbia此代码非常简单,任何解释都只会使其更加复杂
<TextBox Name="tb1" /> <!--tb1.Text is source of binding-->
<TextBox Name="tb2" Text="{Binding Text, ElementName=tb1, Mode=OneWayToSource}"/>