Я только начинаю разбираться со связыванием данных, я борюсь со связыванием со свойствами, которые вложены в ObservableCollection дальше вниз по объекту, а именно в DataTemplate ListView, который я пытаюсь привязать к свойству Day.DayDate ниже.
Это приложение для дневников, и это его структура (отредактированная для краткости):
public class Month : INotifyPropertyChanged
{
public DateTime StartDate { get; set; }
public ObservableCollection<Day> Days { get; set; }
}
public class Day : INotifyPropertyChanged
{
public DateTime DayDate { get; set; }
public ObservableCollection<Gig> Gigs { get; set; }
}
public class Gig : INotifyPropertyChanged
{
// Properties of a gig
}
Я изначально заполняю Дни месяцев следующим образом:
private void InitMonth(Month calendarMonth)
{
// create a Day Object for each day of month, create a gig for each booking on that day (done in LoadDay)
int daysInMonth = DateTime.DaysInMonth(calendarMonth.StartDate.Year, calendarMonth.StartDate.Month);
Day dc;
for (int day_cnt = 0; day_cnt < daysInMonth; day_cnt++)
{
dc = new Day();
dc.DayDate = calendarMonth.StartDate.AddDays(day_cnt);
calendarMonth.Day.Add(dc);
}
}
Я хочуВ моем главном окне три секции:
- Месяц ListView (показывает все его дни)
- Day ListView (показывает выбранные дни Gigs)
- Контент-контроль (показывает выбранныеСвойства концертов)
Я застрял на части 1, Мой Xaml выглядит следующим образом:
<StackPanel>
<TextBlock Text="{Binding Path=StartDate, StringFormat={}{0:MMMM}}"/>// Month Heading
<ListView Name="lv_month"
ItemsSource="{Binding}"
ItemTemplate="{StaticResource dayItem}">// Each Day in Month
</ListView>
</StackPanel>
<DataTemplate x:Key="dayItem">
<StackPanel>
<TextBlock Text="{Binding Path=Day.DayDate, StringFormat={}{0:dd ddd}}" />
</StackPanel>
</DataTemplate>
В TextBlock, Привязка к месяцам StartDate работает нормально, тогда я хочупоказать все объекты Daysate за месяцы DayDate (до 31, т.е. с 01 Sat до 31 Mon), перечисленные ниже.
Не отображается Day.DayDate!Как мне привязаться к нему?
В данный момент вы можете видеть 'Path = Day.DayDate', но я попробовал практически все возможности, которые заставляют меня поверить, что я подхожу к этому с неправильной точки зрения.
Любая помощь с благодарностью