2015-08-04 4 views
3

Итак, я пытаюсь, очень просто, отображать элементы в представлении Windows 10, а затем разделять их по группам. Все работает нормально, за исключением того, что я не могу связать название группы.Заголовок группы переплетных списков

Вот мой текущий XAML:

<ListView ItemsSource="{Binding Source={StaticResource cvsEpisodes}}"/> 
    <ListView.ItemTemplate> 
    <DataTemplate> 
     <Grid> 
     <TextBlock Text="{Binding EpisodeNB}"/> 
     <TextBlock Text="{Binding EpisodeTT}"/> 
     <TextBlock Text="{Binding EpisodeDESC}"/> 
     </Grid> 
    </DataTemplate> 
    </ListView.ItemTemplate> 
    <ListView.GroupStyle> 
    <GroupStyle> 
     <GroupStyle.HeaderTemplate> 
     <DataTemplate> 
      <Grid> 
      <TextBlock Text="{Binding SEASONNB}"/> 
      </Grid> 
     </DataTemplate> 
     </GroupStyle.HeaderTemplate> 
    </GroupStyle> 
    </ListView.GroupStyle> 
</ListView> 
<Page.Ressources> 
    <CollectionViewSource x:Name="cvsEpisodes" IsSourceGrouped="True"/> 
</Page.Ressources> 

И C#, который выполняется в случае OnNavigatedTo:

List <EPISODELST> Episodes = new List <EPISODELST>(); 
var episodes = root.episodes.Select(m = >new EPISODELST {EpisodeTT = m.title, EpisodeNB = m.episode.ToString(), EpisodeDESC = m.overview, SEASONNB = m.season.ToString()}).ToList(); 

foreach(EPISODELST s in episodes) 
    { 
     Episodes.Add(new EPISODELST {EpisodeTT = s.EpisodeTT, EpisodeDESC = s.EpisodeDESC, EpisodeNB = "EPISODE " + s.EpisodeNB, SEASONNB = s.SEASONNB }); 
    } 

var result = from EPISODELST in Episodes group EPISODELST by EPISODELST.SEASONNB into grp orderby grp.Key select grp; 
cvsEpisodes.Source = result; 

(EPISODELST и эпизоды два класса, но это не обязательно чтобы вставить их здесь)

Я видел различные другие варианты сгруппированных списков в Интернете, но они все более сложны, чем это, и я предполагаю, что это должно работать, becau se Я могу сказать, что код может корректно отсортировать все данные. Проблема, вероятно, связана с привязкой TextBlock, но я пробовал различные другие вещи, которые я нашел в Интернете, например {Binding = Name} или {Binding Key.Name}, но ничего не работает.

ответ

4

Итак, в конце концов, это было действительно просто. Я обнаружил, что янтарь бросился глубоко вниз Microsoft's UWP Github sample page. Он должен быть переплетены в {Binding Key}

Внутри GroupStyle:

<TextBlock Text="{Binding Key}"/> 
+0

Это единственное решение, которое я мог бы использовать с Windows 10 универсальных приложений (Большинство из них находится в самом вопросе) – JBernardo

Смежные вопросы