我有简化的应用程序来显示我的问题
当我单击按钮时,它会更改Text
属性ViewModel
并TextBlock.Text
更新。
主页.xaml
<StackPanel>
<Button Click="ButtonBase_OnClick">Button to change text</Button>
<TextBlock Text="{x:Bind ViewModel.Text, Mode=OneWay}"></TextBlock>
</StackPanel>
MainPage.xaml.cs
public MainPage()
{
ViewModel = new ViewModel();
this.InitializeComponent();
}
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
ViewModel.Text = "x:Bind works";
}
ViewModel类有一个字符串属性(Text)并实现了INotifyPropertyChange接口。
问题开始时ViewModel
未在 ctor 中设置(即 viewModel 为 null 并在运行时更改):
public MainPage()
{
//ViewModel = new ViewModel();//this line has been removed
this.InitializeComponent();
}
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
ViewModel = new ViewModel();//this line has been added
ViewModel.Text = "x:Bind does not work";
}
编译绑定不起作用(文本未更改),我无法弄清楚为什么会这样......我需要将 viewModel 从 null 更改(vm 为 null,因为它正在等待真实应用程序中的一些数据)