我想做的是,在日历视图中的CalendarViewDayItem中显示与当天相关的约会。
我的约会类:
public class CalJobItemVM : ViewModelBase
{
public CalJobItemVM() { }
public CalJobItemVM(ServiceJob serviceJob)
{
Title = serviceJob.EON
Date = serviceJob.StartDate
}
private string _title;
public string Title
{
get { return _title; }
set { Set(ref _title, value); }
}
private DateTimeOffset _date;
public DateTimeOffset Date
{
get { return _date; }
set { Set(ref _date, value); }
}
}
在我的Page.Resources中,我有以下结构:
<Style TargetType="CalendarViewDayItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="CalendarViewDayItem">
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<Grid Height="26" HorizontalAlignment="Stretch">
<TextBlock Text="{Binding Title}"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
理论上,我想将List绑定到CalendarView的ItemsSource上,根据日期,应该向CalendarViewDayItem的ItemsSource添加一些预约。不幸的是,我没有找到任何方法来实现这个目标。绑定结构应该如下:
CalendarView (ItemsSource = List<CalJobItemVM>())
|-> CalendarViewDayItem (ItemsSource = CalendarView.ItemsSource.Where(x=>x.Date == CalendarViewDayItem.Date)
|-> ListView (ItemsSource = CalendarViewDayItem.ItemsSource)
或者:
CalendarView (ItemsSource = List<CalJobItemVM>())
|-> ListView (ItemsSource = CalendarView.ItemsSource.Where(x=>x.Date == ParentControl.Date)
要么覆盖ListView的ItemsSource,使其过滤由父控件(CalendarViewDayItem)的Date-Value筛选出的CalJobItemMV集合。
我知道CalendarView和CalendarViewDayItem没有ItemsSource属性,因此我希望能得到一些建议,以便修改这两个控件,使它们支持ItemsSource。
此外,任何不使用代码后台的替代方法都非常欢迎。