如何在WPF DateTimePicker中设置多个月的BlackOut日期

时间:2014-07-28 09:33:28

标签: c# wpf calendar datetimepicker

我需要将BlackOutDates设置为多个月。

例如,在选择月份(即2014年1月)时,我只想显示某些限制日期。另一方面,对于febraury,我想展示一些与1月份不同的其他黑色日期。

但我找不到WPF DateTimePick中的任何属性,它可以显式返回在使用ViewModel进行List绑定时绑定到DateTimePick控件的“月份”。

有没有办法,为每个月设置明确的BlackOutDays。

此致 乌斯曼

1 个答案:

答案 0 :(得分:0)

无法直接绑定BlackOutDates集合。相反,助手类会发挥魔力。通常附加属性将用于处理此方案。在属性的回调中做BlackoutDates的手动映射。详细说明见下面的链接。

http://wpfplayground.com/2014/07/28/wpf-datepicker-blackoutdates-data-binding/

要在更改月份时从日期选择器获取通知,请使用DisplayDate属性。以两种方式绑定此属性。并且您可以在更改的属性上更新您的黑色日期集合。

    private void OnPropertyChanged(object sender, PropertyChangedEventArgs e)
    {
        if (e.PropertyName == "DisplayDate")
        {
            BlackOutDates = new List<DateTime> { DisplayDate.Date.AddDays(randm.Next(1, 5)), DisplayDate.AddDays(randm.Next(1, 5)) };
        }
    }