我已经简化了应用程序,以显示我的问题更改视图模型
当我点击按钮,它改变了ViewModel
和TextBlock.Text
Text
属性更新。
MainPage.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";
}
视图模型类具有一个字符串属性(文本)和实施INotifyPropertyChange接口。
问题启动时ViewModel
没有在构造函数设置(即视图模型为空,并在运行时更改):
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";
}
Complited 约束力不工作(文字不变)我无法弄清楚为什么它是这样的...我需要从null(vm为null,因为它正在等待一些实际应用中的数据)viewModel
当然,因为没有那个视图模型已经改变的通知 –
您的意思是ViewModel属性?我怎样才能通知变化 - 我不想在MainPage中实现INotifyPropertychange – Alamakanambra
没有魔法,你必须通知页面ViewModel的内容已经改变。不管你如何做,但你必须 –