Je suis en train de m'attaquer à la liaison de données, je suis aux prises avec des propriétés imbriquées dans une ObservableCollection plus bas dans l'objet, à savoir dans un DataTemplate d'une ListView que j'essaye de lier au Day.DayDate propriété ci-dessous.Liaison de liaison pour les objets imbriqués
Son une application de journal & c'est sa structure (sous la direction de le garder bref):
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
}
Je POPULATE d'abord les mois des jours comme ça:
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);
}
}
Je veux que ma fenêtre principale pour avoir trois sections:
- mois ListeVue (montrant tous ses Jours)
- jour ListView (montrant sélectionné Jours Gigs)
- Content Control (montrant certaines propriétés des concerts CONCERTS)
Im coincé sur la partie 1, Mon Xaml ressemble à ceci:
<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>
Dans le TextBlock , Liaison aux mois StartDate fonctionne très bien, puis je veux montrer tous les mois Day Objects Objets DayDate (jusqu'à 31, c'est-à-dire 01 Sat à 31 Lun) énumérés ci-dessous.
Ce n'est pas le jour Jour.Date! Comment me lier à lui?
Vous pouvez voir en ce moment 'Path = Day.DayDate' mais j'ai essayé à peu près toutes les possibilités qui me porte à croire que j'aborde cela sous un mauvais angle.
Toute aide grandement appréciée
Génial! Cela l'a fait, merci beaucoup, donc {Binding Days} est l'équivalent de {Binding Path = Days} - L'objet dans l'objet Month auquel je souhaite me lier, je l'ai maintenant. –