日期选取器绑定不起作用
本文关键字:不起作用 绑定 选取 日期 | 更新日期: 2023-09-27 18:26:30
<DatePicker HorizontalAlignment="Left" Date="{Binding CzechzIn,UpdateSourceTrigger=PropertyChanged , Mode=TwoWay}" Height="35" Margin="785,265,0,0" VerticalAlignment="Top" Width="265"/>
<DatePicker HorizontalAlignment="Left" SelectedDate="{Binding CzechOut, Mode = TwoWay}" Height="35" Margin="785,328,0,0" VerticalAlignment="Top" Width="286"/>
编辑:
错误出在绑定中。显然日期选择器框搞砸了,"Page"属性没有做任何事情(?
第一行代码是原始代码,它什么都不做。在谷歌搜索后,人们建议使用SelectedDate,但它说错误 在类型"日期选取器"中找不到属性"选定日期"。如何解决这个问题?
你的重叠逻辑是错误的。正确的算法可以在接受的答案中看到:检测重叠周期的算法
日期计算看起来正确,它是如何失败的?您应该考虑使用 DateTime.Today 而不是 。现在在这样的代码中避免由一个错误引起的讨厌的时间组件。现在 - 但目前还不清楚是否应该从当前日期预订,我猜。
试试这个:(ps.我为了自己的理智更改(并假设(了您的函数名称:D我想你也应该(
DateCalc(你的代码应该是正确的,但这里有一个较短的版本(:
public bool isCheckInOutOk()
{
return (CheckIn < CheckOut) && (CheckIn > DateTime.Now);
}
日期计算2:
public bool isOverlapping()
{
foreach (Booking book in Books)
{
if (book.CheckInDateTime < CheckOut && CheckIn < book.CheckOutDateTime)
return true;
}
}
return false;
}
因此,您可以使用:
if (IsConfirmed && isCheckInOutOk() && !isOverlapping())
PS.从我的头顶上,所以没有真正测试。是罗林的重叠信用(https://stackoverflow.com/a/13513973/189554(