【问题标题】:Can't get value of time on Xamarin DatePicker for iOS无法在 Xamarin DatePicker for iOS 上获得时间价值
【发布时间】:2020-10-12 16:33:15
【问题描述】:

我想同时使用日期和时间选择器。但我无法从 Xamarin DatePicker 获取时间值,只是正确获取日期值。

我在下面分享了代码

CustomDatePicker.cs

public class CustomDatePickerRenderer : DatePickerRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
    {
        base.OnElementChanged(e);
        if(Control != null)
        {
            UITextField entry = Control;
            UIDatePicker picker = (UIDatePicker)entry.InputView;
            picker.PreferredDatePickerStyle = UIDatePickerStyle.Wheels;
            picker.MinimumDate = Foundation.NSDate.Now;
            picker.MaximumDate = Foundation.NSDate.Now.AddSeconds(172799);
            picker.Mode = UIDatePickerMode.DateAndTime;
        }
    }
}

Xaml

<DatePicker x:Name="datePickerIOS"  DateSelected="datePickerIOS_DateSelected" ></DatePicker>

Xaml.cs

private void datePickerIOS_DateSelected(System.Object sender, Xamarin.Forms.DateChangedEventArgs e)
{
   var date = datePickerIOS.Date;
   // This date's time value always return  12:00:00 AM
}

【问题讨论】:

  • 读取 docs 的 Date 属性 - “与此实例具有相同日期的新对象,时间值设置为午夜 12:00:00 (00:00:00)。 "

标签: ios xamarin


【解决方案1】:

当你使用DateSelected="datePickerIOS_DateSelected"方法时,这是日期选择器的事件,你只能得到正确的日期。

您应该在customrenderer 中获取正确的日期和时间并将其返回到您的页面(您可以使用MessagingCenter 来实现此目的)。

你可以参考这个link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-25
    • 2017-05-06
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多