因此,我正在尝试创建一个时间选择器,用户可以在其中选择一个计数仍然从哪里开始的数字。所以我发现你可以为此做一个日期选择器渲染器并使用一个叫做 CountDownTimer
的东西,很公平,我实现了这个并且当我尝试使用时它看起来不错!
但是现在,当我尝试在进行更改后获取值时,它不会触发任何事件,如果触发,它不会返回预期值,而是返回实际日期。如您所见,我尝试了多种方法。
public class DatePickerRenderer_iOS : DatePickerRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
{
var picker = Control.InputView as UIDatePicker;
if (picker != null)
{
picker.Mode = UIDatePickerMode.CountDownTimer;
}
}
}
}
我如何使用它(pickerTime
是我在 XAML 中的选择器名称):
void PickerTime_Unfocused(object sender, FocusEventArgs e)
{
System.Diagnostics.Debug.WriteLine(pickerTime.Date); // Triggers but returns a datetime, not the actualy selected hour + minute.
}
void PickerTime_PropertyChanging(object sender, PropertyChangingEventArgs e)
{
System.Diagnostics.Debug.WriteLine(pickerTime.Date);
}
private void DatePicker_DateSelected(object sender, DateChangedEventArgs e)
{
System.Diagnostics.Debug.WriteLine(e.NewDate);
}
关于如何调整它以便我在日期选择器更改时直接获得更新值的任何想法?我将如何获得正确的值(不是日期,而是分钟 + 小时值,就像 CountDownTimer 实现一样)?
最佳答案
基础 DatePicker
的 Date
属性自然是 DateTime
类型。因此,为了从 DateTime 中获取准确的分钟和小时;
var date = pickerTime.Date;
string hourMinute = date.ToString("HH:mm");
关于c# - 自定义呈现器 DatePicker CountDownTimer 不会在 Xamarin 表单中更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53601851/