[英]How to hide Cancel button in date picker in Xamarin.Forms
我遇到日期選擇器不應該彈出取消選項的情況。 背后的原因是,用戶必須從日期選擇器中獲取 select 所需的日期。 這里的日期選擇器默認采用今天的日期,因此當用戶打開日期選擇器並單擊Ok
時,不會觸發Date selected
事件。 如果我使用Unfocuss
事件,即使用戶也單擊取消,它也會觸發。 所以,我在想的是隱藏取消按鈕,因為 xamarin.forms 中的日期選擇器沒有任何直接的Cancel
或Ok
事件。 有人可以幫我解決這個問題。
您可以使用 CustomRenderer 來實現此效果,找到Cancel
按鈕,然后將其Visibility
屬性設置為Gone
。如下所示:
[assembly: ExportRenderer(typeof(Xamarin.Forms.DatePicker), typeof(MyDatePicker))]
namespace YourNamepace.Droid
{
class MyDatePicker:DatePickerRenderer, IOnDateSetListener
{
private DatePickerDialog datePickerDialog;
private Context context;
private DateTime currently;
public MyDatePicker(Context context) : base(context)
{
this.context = context;
}
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.DatePicker> e)
{
base.OnElementChanged(e);
currently = DateTime.Now;
this.Control.Click += Control_Click;
}
private void Control_Click(object sender, EventArgs e)
{
datePickerDialog = new DatePickerDialog(context,this,currently.Year,currently.Month - 1, currently.Day);
datePickerDialog.Show();
Android.Widget.Button cancel = datePickerDialog.GetButton((int)DialogButtonType.Negative);
cancel.Visibility = ViewStates.Gone;
}
public void OnDateSet(Android.Widget.DatePicker view, int year, int month, int dayOfMonth)
{
DateTime selectedDate = new DateTime(year, month + 1, dayOfMonth);
currently = selectedDate;
Control.Text = selectedDate.ToShortDateString();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.