簡體   English   中英

Xamarin.Forms iOS 中的 DateTimePicker

[英]DateTimePicker in Xamarin.Forms iOS

我正在使用 Xamarin Forms 創建一個應用程序,我想在 iOS 中實現這樣的日期時間選擇器https://developer.apple.com/documentation/uikit/uidatepicker

我已經找到了如何實現 TimePicker 或 DatePicker 但不是全部。 有沒有辦法將它添加到 Xamarin Forms 中? 有沒有辦法在 Xamarin Forms 中創建它?

 <DatePicker
   x:Name="inicioDatePicker"
   Format="D"
   DateSelected="OnDateSelected"
   Date="{Binding InicioDatePicker}"/>

謝謝你。 問候

當Picker的值更改時,您應該添加Event。請參考以下代碼

//...
using ObjCRuntime;
//...
protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
{
    base.OnElementChanged(e);
    if (Control != null)
     {
       UIDatePicker dateTimePicker = (UIDatePicker)Control.InputView;

       dateTimePicker.Mode = UIDatePickerMode.DateAndTime;
       dateTimePicker.AddTarget(this, new Selector("DateChanged:"), UIControlEvent.ValueChanged);
       NSDateFormatter dateFormat = new NSDateFormatter();
       dateFormat.DateFormat = "dd/MM/yyyy HH:mm";
       var text = (UITextField)Control;
       text.Text = dateFormat.ToString(dateTimePicker.Date);            
     }
}

[Export("DateChanged:")]
public void DateChanged(UIDatePicker picker)
{
   NSDateFormatter dateFormat = new NSDateFormatter();
   dateFormat.DateFormat = "dd/MM/yyyy HH:mm";
   var text = (UITextField)Control;
   text.Text = dateFormat.ToString(picker.Date);
}

我已經設法做到了,但是當我點擊完成按鈕時我無法格式化日期和時間,有人知道怎么做嗎?

這是我的代碼:

using System;
using App.iOS;
using CoreGraphics;
using Foundation;
using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;

[assembly: ExportRenderer(typeof(DatePicker), typeof(CustomDatePickerRender))]

namespace App.iOS
{

public class CustomDatePickerRender : DatePickerRenderer
{

    public CustomDatePickerRender()
    {
    }

    protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
    {
        base.OnElementChanged(e);
        if (Control != null)
        {
            var dateTimePicker = (UIDatePicker)Control.InputView;
            dateTimePicker.Mode = UIDatePickerMode.DateAndTime;
            NSDateFormatter dateFormat = new NSDateFormatter();
            dateFormat.DateFormat = "dd/MM/yyyy HH:mm";


            var text = (UITextField)Control;
            text.Text = dateFormat.ToString(dateTimePicker.Date);
        }
    }



   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM