问题描述
我想同时使用日期和时间选择器。但是我无法从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
}
解决方法
使用DateSelected="datePickerIOS_DateSelected"
方法时,这是日期选择器的事件,您只能获得正确的日期。
您应该在customrenderer中获取正确的日期和时间,并将其返回到页面(可以使用MessagingCenter来实现)。
您可以参考此link。