Формы Xamarin: Как сделать выбор времени, чтобы не допустить выбора прошлого времени

#xamarin.forms

Вопрос:

В своем проекте я использую таймер для выбора времени. Используя это, я создаю некоторые события в своем приложении.

Моя проблема в том, что когда я открываю таймер, мне нужно отключить прошедшее время.

Например, если текущее время 10:15 утра, мне нужно отключить все прошедшее время с 12 утра до 10:14 утра. Есть ли какое-либо свойство, доступное для такого рода функций?

Для DatePicker у нас есть свойство под названием MinimumDate . Но я не вижу ничего подобного для выбора времени.

Комментарии:

1. Я думаю, что самым простым подходом было бы проверить после того, как пользователь выберет время. В качестве альтернативы вы можете использовать стандартный выбор со списком допустимых времен с шагом

2. Если это невозможно в элементе управления для конкретной платформы (например, в виджете выбора часов Android), то это также невозможно в элементе управления формами Xamarin. Вы можете либо сделать то, что предлагает Джейсон, и использовать событие OnTimeSelected для выполнения какой-либо проверки, вернуться к использованию стандартного средства выбора, в котором вы указываете список элементов в средстве выбора, либо 3-м вариантом было бы написать пользовательские средства визуализации, которые используют какой-то набор чисел (на Android), где вы указываете свои собственные параметры, если хотите более родной.

Ответ №1:

При вызове функции сохранения для события (после выбора времени) добавьте проверку для времени, как показано ниже:

 if ((DateTime.Now.TimeOfDay lt; timePicker.Time) {  Debug.WriteLine("choosed time is future time"); } else {  Debug.WriteLine("choosed time is past time"); }  

Если код попадает в блок if, у средства выбора времени есть будущее время, а если оно находится в блоке else, то выбранное время относится к прошлому.