タイトルはほとんどそれをすべて言います。スコアは 0 として表示されています (これは私が初期化したものです)。ただし、スコアを更新すると、UI textBlock に反映されません。これは非常に簡単だと思いましたが、Android からの切り替えで常に問題が発生しています :) UI スレッドで何かを実行していると思いますか??
「スコア」プロパティにバインドしようとしています。
<TextBox x:Name="text_Score" Text="{Binding Score, Mode=OneWay}" HorizontalAlignment="Left" Margin="91,333,0,0" Grid.Row="1" TextWrapping="Wrap" VerticalAlignment="Top" Height="148" Width="155" FontSize="72"/>
ここに私のホルダークラスがあります
public class GameInfo
{
public int Score { get; set; }
public int counter = 0;
}
**注: {get; を忘れずに追加してください。set;} でないと何も表示されません。
そして、これは私がそれを設定しようとしている場所です
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
info.counter = (int)e.Parameter;
text_Score.DataContext = info;
}
PS 繰り返しますが、私は OneWay を使用します。スコアのみを表示し、変数が変更されたときに日付を付けないようにしたい。ユーザー入力を無効にする予定です。
これが完全に機能するコード例です。変更しなければならなかったのは、ホルダー クラスだけでした。ありがとうウォルト。
public class GameInfo : INotifyPropertyChanged
{
private int score;
public int Score {
get { return score; }
set
{
if (Score == value) return;
score = value;
NotifyPropertyChanged("Score");
}
}
public int counter = 0;
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}