为什么提供的简单代码在每次按键时都会复制"源"文本,而不是在lostFocus上?
<StackPanel>
<TextBox Text="{Binding Text, ElementName=source, UpdateSourceTrigger=LostFocus}"/>
<TextBox x:Name="source"/>
</StackPanel>
您的代码如下所示:
第一个TextBox绑定到它下面的TextBox控件。因此,第一个TextBox的文本将根据第二个TextBox的text值进行更改。
答案是:丢失焦点是在更改第一个TextBox时。当您更改第二个时,由于它被第一个TextBox绑定,它会自动更新第一个。
编辑:我已经运行了该代码:如果您更改第一个TextBox,只有当您失去焦点时,另一个TextBox才会更改。如果您更改第二个,第一个将自动更改,正如我所期望的。
这相当简单。每当绑定目标元素失去焦点时,带有LostFocus的UpdateSourceTrigger就会更新绑定源。这不是双向的。绑定以正确、正确的方式工作,正如预期的那样。