为什么TextBlock“T1”在点击按钮“B1”后仍然没有显示“101”,仍显示“100”?
<StackPanel>
<TextBlock Name="T1" Text="{x:Bind value, Mode=OneWay}"/>
<Button Name="B1" Content="+1" Click="B1_Click"/>
</StackPanel>
和
public sealed partial class MainPage : Page
{
public int value;
public MainPage()
{
InitializeComponent();
value = 100; // initial value
}
private void B1_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
value = value + 1;
}
}
答案 0 :(得分:1)
您的value
是一个字段,是的,它适用于x:Bind
。实际上它甚至应该是private
。
但为了让用户界面更新 value
的值,您需要在以下三个更改中进行一次 -
Bindings.Update()
。INotifyPropertyChanged
并在setter上引发属性更改事件。您可以从here了解更多信息。但要选哪一个?这通常是我做的 -
Bindings.Update()
并从绑定中删除Mode=OneWay
以获得最佳效果。INPC
。