Я хочу создать приложение, которое отсчитывает выбранное время.Но у меня странная проблема, и я не знаю, что я делаю неправильно.
Вот мой таймер, он будет вызываться каждый раз, когда изменяется свойство средства выбора.Когда я выбираю время, код удаляет только 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();
}
}
}
Кто-нибудь знает, что я здесь делаю неправильно?