日期选取器绑定不起作用

本文关键字:不起作用 绑定 选取 日期 | 更新日期: 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(