or
public
class
CalendarButtonTemplateSelector : DataTemplateSelector
{
public
override
DataTemplate SelectTemplate(
object
item, DependencyObject container)
{
CalendarButtonContent content = item
as
CalendarButtonContent;
if
(content !=
null
&& content.ButtonType == CalendarButtonType.Date)
{
if
(CentralCalendarWindow.CalendarViewItems !=
null
&& CentralCalendarWindow.CalendarViewItems.Exists(c => c.Date == content.Date))
{
CalendarViewItem calendarViewItem = CentralCalendarWindow.CalendarViewItems.Find(c => c.Date == content.Date);
if
(calendarViewItem.Holiday)
{
return
HolidayTemplate;
}
else
if
(calendarViewItem.NoDistribution)
{
return
NoDistributionTemplate;
}
else
if
(calendarViewItem.PartlyNoDistribution)
{
return
PartlyNoDistributionTemplate;
}
}
}
return
DefaultTemplate;
}
public
DataTemplate DefaultTemplate {
get
;
set
; }
public
DataTemplate HolidayTemplate {
get
;
set
; }
public
DataTemplate NoDistributionTemplate {
get
;
set
; }
public
DataTemplate PartlyNoDistributionTemplate {
get
;
set
; }
}
DayTemplateSelector=
"{StaticResource templateSelector}"
<
this
:CalendarButtonTemplateSelector x:Key=
"templateSelector"
DefaultTemplate=
"{StaticResource dataTemplateDefault}"
HolidayTemplate=
"{StaticResource dataTemplateHoliday}"
NoDistributionTemplate=
"{StaticResource dataTemplateNoDistribution}"
PartlyNoDistributionTemplate=
"{StaticResource dataTemplatePartlyNoDistribution}"
/>