gpt4 book ai didi

xaml - CalendarDatePicker 在第二次选择相同的日期时返回 null

转载 作者:行者123 更新时间:2023-12-03 10:43:11 25 4
gpt4 key购买 nike

我在我的 ViewModel 中使用绑定(bind)到属性的 CalendarDatePicker 和绑定(bind)到方法的 Closed 事件。 LoadPage 方法使用 SelectedDate 属性来加载一些数据。除了我尝试选择已经选择的同一日期之外,一切都运行良好。在转换器中,我可以看到选择的值为 null 并且我得到一个异常,因为它不能将 null 转换为 DateTimeOffset。知道为什么选择的日期最终为空吗?以及如何解决这个问题?

public object ConvertBack(object value, Type targetType, object parameter, string language)
{
var dateoffset = (DateTimeOffset)value;

return dateoffset.Date;
}
...

<CalendarDatePicker x:Bind ViewModel.SelectedDate,
Converter={StaticResource DateTimeConverter}, Mode=TwoWay}"
Closed="{x:Bind ViewModel.LoadPage}">
</CalendarDatePicker>

最佳答案

我通过在转换器中检查 null 并返回 DateTime.MinValue 值,然后在属性 setter 中引发 PropertyChanged 事件来修复它。
这不是很好,我欢迎更好的解决方案。

public object ConvertBack(object value, Type targetType, object parameter, string language)
{
if (value == null) return DateTime.MinValue;

DateTimeOffset sourceTime = (DateTimeOffset)value;
DateTime targetTime = sourceTime.DateTime;
return targetTime;
}


public DateTime CurrentDate
{
get { return _currentDate; }
set
{
if (value == DateTime.MinValue)
{
RaisePropertyChanged(nameof(CurrentDate));
return;
}
Set(ref _currentDate, value);
}
}

关于xaml - CalendarDatePicker 在第二次选择相同的日期时返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43931618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com