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