I'm having trouble displaying the group header of a listview grouping I made. Can you please check it out. The whole code is below. Just a simple load of items and applying the grouping but for some reason, the binding on the datatemplate won't display. Please help and thank you very much!Code behind:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;using System.ComponentModel;
namespace WpfApplication2{ /// <summary> /// Interaction logic for Window1.xaml /// </summary> public partial class Window1 : Window { private List<Student> _StudentList = new List<Student>(); public Window1() { InitializeComponent(); this.Loaded += new RoutedEventHandler(Window1_Loaded); }
private void Window1_Loaded(object sender, RoutedEventArgs e) { _StudentList.Add(new Student() { FirstName = "Shaquille", LastName = "O'Neal", Level = "Grade 1" }); _StudentList.Add(new Student() { FirstName = "Michael", LastName = "Jordan", Level = "Grade 1" }); _StudentList.Add(new Student() { FirstName = "Mark", LastName = "Price", Level = "Grade 2" }); _StudentList.Add(new Student() { FirstName = "Allen", LastName = "Iverson", Level = "Grade 2" }); _StudentList.Add(new Student() { FirstName = "LeBron", LastName = "James", Level = "Grade 2" }); _StudentList.Add(new Student() { FirstName = "Kobe", LastName = "Bryant", Level = "Grade 3" }); _StudentList.Add(new Student() { FirstName = "Chanucey", LastName = "Billups", Level = "Grade 1" });
InitLvw(); }
private void InitLvw() { ICollectionView view = CollectionViewSource.GetDefaultView(_StudentList); if (view.CanGroup) view.GroupDescriptions.Add(new PropertyGroupDescription("Level")); // Get template. GroupStyle gs = new GroupStyle(); gs.HeaderTemplate = this.FindResource("categoryTemplate") as DataTemplate; lvw.GroupStyle.Add(gs); lvw.SelectionMode = SelectionMode.Single;
// View. GridView gv = new GridView(); GridViewColumn gvc = new GridViewColumn(); gvc = new GridViewColumn(); gvc.Header = "First Name"; gvc.Width = 90; gvc.DisplayMemberBinding = new Binding("FirstName"); gv.Columns.Add(gvc);
gvc = new GridViewColumn(); gvc.Header = "Last Name"; gvc.Width = 90; gvc.DisplayMemberBinding = new Binding("LastName"); gv.Columns.Add(gvc); gvc = new GridViewColumn();
lvw.View = gv; lvw.ItemsSource = _StudentList; }
public class Student { public string FirstName { get; set; } public string MiddleName { get; set; } public string LastName { get; set; } public string Level { get; set; } } }}And the XAML:<Window x:Class="WpfApplication2.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300"> <Window.Resources> <DataTemplate x:Key="categoryTemplate"> <TextBlock Text="{Binding Path=Level}" FontWeight="Bold" Foreground="ForestGreen" Margin="0,5,0,0"/> </DataTemplate> </Window.Resources> <Grid> <ListView x:Name="lvw" /> </Grid></Window>