为什么 wpf UpdateSourceTrigger 无法工作
why does wpf UpdateSourceTrigger fails to work
为什么提供的简单代码会在每次按键时复制 "source" 文本,而不是在 lostFocus 上?
<StackPanel>
<TextBox Text="{Binding Text, ElementName=source, UpdateSourceTrigger=LostFocus}"/>
<TextBox x:Name="source"/>
</StackPanel>
这很简单。只要绑定目标元素失去焦点,带有 LostFocus 的 UpdateSourceTrigger 就会更新绑定 source。两种方式都行不通。正如预期的那样,绑定以适当、正确的方式工作。
你的代码是这样写的:
第一个 TextBox 绑定到它下方的 TextBox 控件。所以第一个 TextBox 的文本会根据第二个 TextBox 的 Text 值而改变。
答案是:
失去焦点是在您更改第一个文本框时。
当您更改第二个时,由于它受第一个 TextBox 的约束,因此它会自动更新到第一个。
编辑:
我有 运行 那个代码:
如果您更改第一个 TextBox,只有当您失去焦点时,另一个 TextBox 才会更改。
如果你改变第二个,第一个会自动改变,正如我所期望的那样。
为什么提供的简单代码会在每次按键时复制 "source" 文本,而不是在 lostFocus 上?
<StackPanel>
<TextBox Text="{Binding Text, ElementName=source, UpdateSourceTrigger=LostFocus}"/>
<TextBox x:Name="source"/>
</StackPanel>
这很简单。只要绑定目标元素失去焦点,带有 LostFocus 的 UpdateSourceTrigger 就会更新绑定 source。两种方式都行不通。正如预期的那样,绑定以适当、正确的方式工作。
你的代码是这样写的:
第一个 TextBox 绑定到它下方的 TextBox 控件。所以第一个 TextBox 的文本会根据第二个 TextBox 的 Text 值而改变。
答案是: 失去焦点是在您更改第一个文本框时。 当您更改第二个时,由于它受第一个 TextBox 的约束,因此它会自动更新到第一个。
编辑: 我有 运行 那个代码: 如果您更改第一个 TextBox,只有当您失去焦点时,另一个 TextBox 才会更改。 如果你改变第二个,第一个会自动改变,正如我所期望的那样。