启用/禁用WPF日历会丢失中断日期

时间:2013-05-22 09:35:32

标签: c# wpf xaml

我有一个日历控件,我禁用了使用限制日期的日期。日历控件绑定到另一个允许用户启用或禁用日历的属性。

限制日期工作完美但是,当用户启用/禁用日历时,所有停电日期都已消失 - 为什么会发生这种情况或如何阻止它发生?

<Calendar IsEnabled="{Binding StartTheSceduleNow, Converter={StaticResource BoolToOppositeBoolConverter}}" x:Name="Calender" Loaded="CalendarLoaded"  >

.cs背后的代码

private void CalendarLoaded(object sender, RoutedEventArgs e)
{
    this.Calender.BlackoutDates.Add(new CalendarDateRange(DateTime.MinValue, DateTime.Now.AddDays(-1)));
}

2 个答案:

答案 0 :(得分:1)

一定是你的结果。对我来说,这个XAML与你的Loaded方法一起工作:

<Grid>
  <StackPanel>
    <CheckBox x:Name="theBox" />
    <Calendar IsEnabled="{Binding IsChecked, ElementName=theBox}" x:Name="Calender" Loaded="CalendarLoaded" />
  </StackPanel>
</Grid>

当我切换复选框时,所有BlackoutDates都会保留。

答案 1 :(得分:0)

如果您将大BlackoutDates(从DateTime.MinValue设置为几乎当前的日期时间),则会设置日历ovveride DisplayDateStart。所以,您需要将DisplayDateStart设置为值,您需要(例如DateTime.MinValue