問題を表示するためにアプリを簡素化しました
ボタンをクリックすると、のプロパティが変更さTextれて更新されます。ViewModelTextBlock.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";
}
ViewModelクラスには、1 つの文字列プロパティ (Text) と実装されたINotifyPropertyChangeインターフェイスがあります。
が ctor に設定されていない場合ViewModel(つまり、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";
}
Complited binding が機能していない(テキストが変更されていない) 理由がわかりませんでした... viewModel を null から変更する必要があります (実際のアプリでデータを待っているため、vm は null です)