簡體   English   中英

Xamarin.Forms DatePickerCustomRenderer 無法識別 IOnDateSetListener

[英]Xamarin.Forms DatePickerCustomRenderer doesn't recognize the IOnDateSetListener

我試圖將 TimePicker 自定義渲染器調整為 DatePicker。 長話短說它沒有按預期工作,它說關鍵字 this 不能從 Dialog 轉換為 OnDateSetListener,所以我嘗試添加一個顯式轉換:(DatePickerDialog.IOnDateSetListener)this。 但我也無法讓它運行。

TimePicker 運行良好,我從這里得到了它: 鏈接


[assembly: ExportRenderer(typeof(Xamarin.Forms.DatePicker), typeof(DatePickerDialogCustomRenderer))]

namespace Arbeitszeitrechner_Forms.Droid
{
    class DatePickerDialogCustomRenderer : DatePickerRenderer
    {
        private readonly Context _context;
        public DatePickerDialogCustomRenderer(Context context) : base(context)
        {
            _context = context;

        }
        protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.DatePicker> e)
        {
            base.OnElementChanged(e);
        }

        DatePickerDialog dialog;
        protected override DatePickerDialog CreateDatePickerDialog(int year, int month, int day)
        {
            dialog = new DatePickerDialog(_context, Resource.Style.DatePickerTheme, (DatePickerDialog.IOnDateSetListener)this, year, month, day);

            return dialog;

        }
    }
}

根據您的描述和代碼,您想通過自定義渲染更改 DatePicker 對話框顏色,我認為您需要為DatePickerDialogCustomRenderer繼承MaterialDatePickerRenderer 。我使用以下代碼,它工作正常。

[assembly: ExportRenderer(typeof(Xamarin.Forms.DatePicker), typeof(DatePickerDialogCustomRenderer))]
namespace FormsSample.Droid
{
class DatePickerDialogCustomRenderer : MaterialDatePickerRenderer
{
    private readonly Context _context;
    public DatePickerDialogCustomRenderer(Context context) : base(context)
    {
        _context = context;

    }
  
    protected override DatePickerDialog CreateDatePickerDialog(int year, int month, int day)
    {
        Xamarin.Forms.DatePicker view = Element;
       
        var dialog = new DatePickerDialog(Context, Resource.Style.TimePickerTheme, (o, e) =>
         {
             view.Date = e.Date;
             ((IElementController)view).SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, false);           
         }, year, month, day);

        return dialog;

    }
}
}

截圖:

在此處輸入圖像描述

暫無
暫無

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

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