WPF 数据分组显示
效果展示:
Student类:
public class Student
{public string Name { get; set; }public string Class { get; set; }public int Age { get; set; }
}
MainWindow.xaml.cs
public partial class MainWindow : Window
{private ObservableCollection<Student> students;public IEnumerable<IGrouping<string,Student>> GroupeStudent { get; set; }public MainWindow(){InitializeComponent();students = new ObservableCollection<Student>(){new Student(){ Name = "赵一", Class = "初中", Age = 14},new Student(){ Name = "钱二", Class = "小学", Age = 9},new Student(){ Name = "孙三", Class = "高中", Age = 16},new Student(){ Name = "李四", Class = "初中", Age = 15},new Student(){ Name = "周五", Class = "高中", Age = 17},new Student(){ Name = "吴六", Class = "高中", Age = 16},new Student(){ Name = "郑七", Class = "小学", Age = 8},new Student(){ Name = "王八", Class = "初中", Age = 14}};GroupeStudent = students.GroupBy(x => x.Class);this.DataContext = this;}
}
MainWindow.xaml
<Grid Margin="40"><ListView ItemsSource="{Binding GroupeStudent}"><ListView.ItemTemplate><DataTemplate ><Expander Header="{Binding Key}"><ListView ItemsSource="{Binding}"><ItemsControl.ItemTemplate><DataTemplate><StackPanel Orientation="Horizontal"><TextBlock Text="{Binding Name}" Margin="10"/><TextBlock Text="{Binding Class}" Margin="10"/><TextBlock Text="{Binding Age}" Margin="10"/></StackPanel></DataTemplate></ItemsControl.ItemTemplate></ListView></Expander></DataTemplate></ListView.ItemTemplate></ListView>
</Grid>