标题几乎说明了一切。分数显示为 0(这是我将其初始化为的)。但是,在更新分数时,它不会传播到 UI 文本块。认为这会很简单,但我总是遇到从 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));
}
}
}