[英]How to clear Calendar Date Picker Selected Values in UWP, C#
我有一個數據網格控件和一系列用於過濾該數據網格中數據的控件。
這些控件可以分為如下兩個。
Today
、 Yesterday
、 Last Week
、 Last Month
)From
和To
,當我單擊按鈕時,事件會獲取這些From
和To
日期值的值並完成工作)現在,我想做一些 UX 工作,如下所示。
我可以管理它適用於要求 2,但 1 進展不順利。 下面是我的事件處理程序。 我沒有使用 MVVM。 只是代碼隱藏。
private void SelectionChanged_Filter(object sender, SelectionChangedEventArgs e)
{
/*DatePicker_FromDate.ClearValue(CalendarDatePicker.DateProperty);
DatePicker_FromDate.PlaceholderText = "Pick a Date";
DatePicker_ToDate.ClearValue(CalendarDatePicker.DateProperty);
DatePicker_ToDate.PlaceholderText = "Pick a Date";*/
DatePicker_FromDate.Date = null
DatePicker_ToDate.Date = null;
}
private void ButtonClick_Filter(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
// Clear the Filter Combobox's selected value
ComboBox_Filter.SelectedIndex = -1;
// EXCEPTION is in the below line:
var fromDate = Convert.ToDateTime(DatePicker_FromDate.Date.ToString()).ToString("dd-MM-yyyy");
var toDate = Convert.ToDateTime(DatePicker_ToDate.Date.ToString()).ToString("dd-MM-yyyy");
//...
}
例外是:
System.FormatException: 'String '' was not recognized as a valid DateTime.'
我認為將null
設置為日歷日期選擇器的日期值是無效的。 當我更改 combobox 時,如何清除這些值?
更新:要清除 CalendarDatePicker 的值,您可以將 Date 屬性設置為 null,如下所示。
DatePicker_FromDate.Date = null;
DatePicker_ToDate.Date= null;
傳值,先判斷是否為null,再對其值進行運算。
string toDate= = DatePicker_ToDate.Date == null ? "" : DatePicker_ToDate.Date.Value.ToString("dd/MM/yyyy");
如果將Date
屬性設置為null
,則string
也將為null
:使用以下使用安全導航運算符 ( ?.
) 的代碼:
var fromDate = DatePicker_FromDate.Date?.ToString("dd-MM-yyyy");
var toDate = DatePicker_ToDate.Date?.ToString("dd-MM-yyyy");
我想這就是你想要的。
另請注意,首先將DateTime
轉換為string
只是為了將其轉換回DateTime
然后再次將其轉換為string
是沒有意義的......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.