自定义呈现器DatePicker CountDownTimer未对Xamarin表单中的值进行日期更改



因此,我正在尝试创建一个时间选择器,用户可以从中选择一个计数开始的数字。所以我发现你可以为此做一个日期选择器渲染器,并使用一个名为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的实现一样(?

基本DatePickerDate属性自然是DateTime类型。因此,为了从DateTime中得到准确的分钟和小时;

var date = pickerTime.Date;
string hourMinute = date.ToString("HH:mm"); 

最新更新