[英]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.