Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Binding listview group header

So, I attempting to, very simply, display items in a Windows 10 listview, and then seperate them by group. Everything is working fine, except that I can't seem to bind the title of the group.

Here is my current 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>

And the C#, that is executed by the OnNavigatedTo event:

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 and episodes are two classes, but it isn't necessary to paste them here)

I have seen various other implementations of grouped listviews online, but they are all way more complex than this, and I'm guessing that this should work, because I can tell the code can succesfuly sort all the data correctly. The problem probably just has to do with the TextBlock's binding, but I have tried various other things I found online, such as {Binding=Name}, or {Binding Key.Name}, but nothing seems to work.

like image 770
user2950509 Avatar asked Jul 30 '26 13:07

user2950509


1 Answers

So, In the end, this was really simple. I found the awnser burried deep down Microsoft's UWP Github sample page. It has to be binded to {Binding Key}

Inside GroupStyle:

<TextBlock Text="{Binding Key}"/>
like image 111
user2950509 Avatar answered Aug 02 '26 02:08

user2950509