我有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属性的值中指定绑定。由于这些是双向绑定,为什么它们的行为不一样?
实际上你写的东西确实有效。默认情况下,TextBox的Text属性设置为在TextBox失去焦点时从绑定源更新。因此,如果您在text2(即48)中键入内容,则在关注其他对象(即单击返回text1)之前,您将看不到它会发生变化。
如果要更改此项以匹配text1的行为,请执行以下操作:
<TextBox x:Name="text2" Text="{Binding FontSize, ElementName=text2, UpdateSourceTrigger=PropertyChanged}" FontSize="15"/>