【发布时间】:2019-04-18 21:57:21
【问题描述】:
我想创建一个对选定时间进行倒计时的应用。但是我遇到了一个奇怪的问题,我不知道自己做错了什么。
这是我的计时器,每次选择器的属性更改时都会调用它。当我选择一个时间时,代码仅删除 1 秒,然后不再更新。
Picker.PropertyChanged += (sender, e) =>
{
if (e.PropertyName == TimePicker.TimeProperty.PropertyName)
{
Device.StartTimer(TimeSpan.FromSeconds(1), () =>
{
clockViewModel.SelectedTime = Picker.Time.Subtract(TimeSpan.FromSeconds(1));
return true;
});
}
};
我还尝试打印一个在值中不断更新的值:
public int i = 0;
private void StartTimer()
{
Device.StartTimer(TimeSpan.FromSeconds(1), () =>
{
clockViewModel.SelectedTime = Picker.Time.Subtract(TimeSpan.FromSeconds(1));
label.Text = i;
i++;
return true;
});
}
价值不断增加,所以我确定它正在做某事。
这是我的模型视图:
public class ClockViewModel : BaseViewModel
{
private TimeSpan selectedTime;
public TimeSpan SelectedTime
{
get => selectedTime;
set
{
selectedTime = value;
NotifyPropertyChanged();
}
}
}
有人知道我在这里做错了什么吗?
【问题讨论】:
标签: c# mvvm xamarin.forms properties inotifypropertychanged