#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, то выбранное время относится к прошлому.