Dati vincolanti in LongListSelector

Mi riferisco all’esempio qui: http://dotnet.dzone.com/articles/using-longlistselector-control

Ecco il mio codice:

public class Chapters { private string mainTitle; public string MainTitle { get { return mainTitle; } set { mainTitle = value; } } private List subTitle; public List SubTitle { get { return subTitle; } set { subTitle = value; } } } private static IEnumerable GetCityList() { return myList; // Which already contains data: MainTitle : Chapters subtitle : ABC subtitle : X MainTitle : Chapters Two subtitle : ASDF subtitle : GHIJK } public class GroupingLayer : IGrouping { private readonly IGrouping grouping; public GroupingLayer(IGrouping unit) { grouping = unit; } public TKey Key { get { return grouping.Key; } } public IEnumerator GetEnumerator() { return grouping.GetEnumerator(); } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return grouping.GetEnumerator(); } } 

XAML:

              

e lo sto impostando in questo modo:

 var selected = (from c in myList group c by c.MainTitle into n select new GroupingLayer(n)).ToList(); longListSelector.ItemsSource = selected; 

Ma per me è solo la visualizzazione del titolo principale, ma i titoli secondari non vengono visualizzati affatto.

Cosa c’è di sbagliato qui?

Credo che dovresti impostare i tuoi articoli come fonte di riferimento per una raccolta osservabile

Non l’ho fatto esattamente come te, ma ecco il mio xaml ed ecco un viewmodel per un’app che costruisco per il negozio di windows phone.

Credo anche che sia la chiave per cancellare e quindi impostare la fonte degli elementi durante l’aggiornamento. Quando stavo costruendo un’app WPF, mi sembra di ricordare di aver passato un sacco di problemi di tempo a sparare all’osservazione della riserva che non si aggiornava.

Quando lo fai

var selected = (from c in myList group c by c.MainTitle into n select new GroupingLayer(n)).ToList();

ottieni una lista in cui ogni articolo ha:

  • una proprietà Key (nel tuo caso contenente il valore MainTitle) perché raggruppa per MainTitle!
  • una lista di oggetti “bambini”

Quando definisci il tuo DataTemplate, puoi associare la proprietà “Key” perché esiste in questo nuovo elenco, ma SubTitle non esiste, quindi non puoi mostrarlo!

Puoi dare un’occhiata a questo esempio:

http://code.msdn.microsoft.com/wpapps/PhotoHub-Windows-Phone-8-fd7a1093