【发布时间】:2021-03-28 06:14:31
【问题描述】:
我在 Xaramin 中做一个问答游戏。形式。和得分函数。如果用户得到正确答案,我希望分数会加 1。但在我的情况下,即使给出正确答案,分数也不会增加。
我也在尝试将“分数”变量绑定到标签。我想知道我是否输入了正确的代码。
按钮
private void submit_Clicked(object sender, EventArgs e)
{
string answer = this.answer.Text;
string canswer = "correct";
if (answer != null)
{
string ranswer = answer.Replace(" ", string.Empty);
if (ranswer.ToLower() == canswer)
{
DisplayAlert("GoodJob", "You got the correct answer", "OK");
bindingModel b = new bindingModel();
b.score++;
(sender as Button).IsEnabled = false;
}
else
{
DisplayAlert("Unfortunately", "Your answer is wrong", "OK");
(sender as Button).IsEnabled = false;
}
}
}
视图模型
public class bindingModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public int displayScore => Score;
public int score = 0;
void OnPropertyChanged(int score)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(score.ToString()));
}
public int Score
{
get => score;
set
{
if (score != value)
{
score = value;
OnPropertyChanged(score);
}
}
}
}
型号
<Label Text="{Binding Score}"/>
【问题讨论】:
-
您的
submit_Clicked正在创建bindingModel的新实例,而不是页面上已存在的实例 -
@Jason 感谢您的回复,请问使用现有实例的正确方法是什么。我是编程新手
标签: xamarin.forms data-binding