DatePicker绑定不起作用

时间:2015-12-12 18:09:39

标签: c# xaml datetime data-binding datepicker

<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"/>

编辑:

错误发生在绑定中。显然,DatePicker框乱了,“Page”属性不做任何事情(?)。

第一行代码是原始代码,它什么也没做。谷歌搜索后人们推荐使用SelectedDate,但它说 错误在'DatePicker'类型中找不到属性'SelectedDate'。 如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您的重叠逻辑错误。在接受的答案中可以看到正确的算法:Algorithm to detect overlapping periods

DateCalc看起来正确,它是如何失败的?你应该考虑在这样的代码中使用DateTime.Today而不是.Now来避免因.Now的时间成分导致的一个错误而烦恼 - 但我不清楚是否应该从当前日期预订是可能的。

答案 1 :(得分:0)

试试这个:(ps。我为了自己的理智改变了(和假定的)你的功能名称:D我认为你也应该这样做)

DateCalc(您的代码应该是正确的,但这是一个较短的版本):

public bool isCheckInOutOk() 
{
    return (CheckIn < CheckOut) && (CheckIn > DateTime.Now);
}

DateCalc2:

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

的过度信贷