自定义渲染器DatePicker CountDownTimer在Xamarin表单中的日期未更改

时间:2018-12-03 21:05:08

标签: c# xamarin xamarin.forms xamarin.ios

因此,我试图创建一个时间选择器,用户可以从中选择一个仍从其开始的数字。因此,我发现您可以为此做一个datepicker渲染器,并使用名为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);
    }

关于如何进行调整的任何想法,以便在更改日期选择器时直接获取更新的值?以及如何获取正确的值(不是Count,而是分钟+小时的值,就像CountDownTimer实现一样)?

1 个答案:

答案 0 :(得分:0)

基本DatePicker的{​​{1}}属性自然是Date类型。因此,为了从DateTime中获取确切的分钟和小时;

DateTime