2

問題を表示するためにアプリを簡素化しました

ボタンをクリックすると、のプロパティが変更さ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 です)

4

2 に答える 2