WPF中的双向绑定:为什么在绑定同一控件的两个属性时,我指定绑定的属性是否重要?

问题描述 投票:0回答:1

我有2个文本框,我希望每个文本框的值影响它自己的字体大小。

<WrapPanel>
    <TextBox x:Name="text1" Text="15" FontSize="{Binding Text, ElementName=text1}"/>
    <TextBox x:Name="text2" Text="{Binding FontSize, ElementName=text2}" FontSize="15"/>
</WrapPanel>

在上面的示例中,当用户将第一个文本框的值更改为其他数字时,字体大小会更改;但是,第二个文本框不会发生这种情况。在第一个文本框中,我在FontSize属性的值中指定绑定,但在第二个文本框中,我在Text属性的值中指定绑定。由于这些是双向绑定,为什么它们的行为不一样?

wpf xaml data-binding
1个回答
0
投票

实际上你写的东西确实有效。默认情况下,TextBox的Text属性设置为在TextBox失去焦点时从绑定源更新。因此,如果您在text2(即48)中键入内容,则在关注其他对象(即单击返回text1)之前,您将看不到它会发生变化。

如果要更改此项以匹配text1的行为,请执行以下操作:

<TextBox x:Name="text2" Text="{Binding FontSize, ElementName=text2, UpdateSourceTrigger=PropertyChanged}" FontSize="15"/>
© www.soinside.com 2019 - 2024. All rights reserved.