启用/禁用WPF日历时,将丢失禁用日期
本文关键字:日期 禁用 WPF 日历 启用 | 更新日期: 2023-09-27 18:14:53
我有一个日历控件,我使用停电日期禁用日期。日历控件绑定到另一个属性,该属性允许用户启用或禁用日历。
停电日期工作完美,但是,当用户启用/禁用日历时,所有停电日期都消失了-为什么会发生这种情况,或者我如何阻止它发生?
<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)));
}
一定是你的原因。对我来说,这个XAML与你的Loaded方法一起工作:
<Grid>
<StackPanel>
<CheckBox x:Name="theBox" />
<Calendar IsEnabled="{Binding IsChecked, ElementName=theBox}" x:Name="Calender" Loaded="CalendarLoaded" />
</StackPanel>
</Grid>
当我切换复选框时,所有的BlackoutDates都保留。
如果您设置较大的BlackoutDates
(从DateTime.MinValue
到几乎当前的dateTime),日历覆盖DisplayDateStart
。因此,您只需将DisplayDateStart
设置为value,您需要(例如DateTime.MinValue
)