我已經簡化了應用程序,以顯示我的問題更改視圖模型
當我點擊按鈕,它改變了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的內容已經改變。不管你如何做,但你必須 –