WPF Listview 排序加分页
Posted candyzhmm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF Listview 排序加分页相关的知识,希望对你有一定的参考价值。
RadioButton radio = sender as RadioButton; courseHoursList.Items.SortDescriptions.Clear(); if (radio.Name == "sort_asc") { courseHoursList.Items.SortDescriptions.Add(new SortDescription("create_time", ListSortDirection.Ascending)); } else { courseHoursList.Items.SortDescriptions.Add(new SortDescription("create_time", ListSortDirection.Descending)); }
分页
#region 分页 private void but_Pages_Click(object sender, RoutedEventArgs e) { Fun_Pager(((sender as Button).DataContext as Page).PageSize); } private int _number; public int Number { get { return _number; } set { _number = value; OnPropertyChanged("Number"); } } private int _currentSize; public int CurrentSize { get { return _currentSize; } set { _currentSize = value; OnPropertyChanged("CurrentSize"); } } private int _total; public int Total { get { return _total; } set { _total = value; OnPropertyChanged("Total"); } } private List<Page> _pages; public List<Page> Pages { get { return _pages; } set { _pages = value; OnPropertyChanged("Pages"); } } private List<LessonInfo> _listRegDept; public List<LessonInfo> ListRegDept { get { return _listRegDept; } set { _listRegDept = value; OnPropertyChanged("ListRegDept"); } } private List<LessonInfo> _listBind; public List<LessonInfo> ListBind { get { return _listBind; } set { _listBind = value; OnPropertyChanged("ListBind"); } } //初始化,传list public void ViewPages(List<LessonInfo> lessonInfos) { LessonInfo dataOP = new LessonInfo(); this.Number = 1;//设置每页显示数目 this.ListRegDept = new List<LessonInfo>();//初始化数据 ListRegDept = lessonInfos; if ((ListRegDept.Count() % this.Number) > 0) { this.Total = ListRegDept.Count() / this.Number + 1;//获取总页数 } else { this.Total = ListRegDept.Count() / this.Number;//获取总页数 } this.Pages = new List<Page>();//初始化所有页数数组 for (int i = 1; i <= this.Total; i++) { this.Pages.Add(new Page { Name = i.ToString(), PageSize = i }); } this.CurrentSize = 1;//设置当前显示页面 Fun_Pager(this.CurrentSize); } /// <summary> /// 分页方法 /// </summary> /// <param name="CurrentSize">当前页数</param> public void Fun_Pager(int CurrentSize) { this.CurrentSize = CurrentSize; this.ListBind = this.ListRegDept.Take(this.Number * this.CurrentSize) .Skip(this.Number * (this.CurrentSize - 1)).ToList(); dataList.ItemsSource = this.ListBind; } private void btnHome_Click(object sender, RoutedEventArgs e) { Fun_Pager(1); } private void btnEnd_Click(object sender, RoutedEventArgs e) { Fun_Pager(this.Pages.Count); } private void btnLast_Click(object sender, RoutedEventArgs e) { if (CurrentSize > 1) { Fun_Pager(CurrentSize - 1); } } private void btnNext_Click(object sender, RoutedEventArgs e) { if (CurrentSize < Pages.Count) { Fun_Pager(CurrentSize + 1); } } } public class Page { public string Name { get; set; } public int PageSize { get; set; } } #endregion
添加在listview 下面
<StackPanel Grid.Row="4" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="Collapsed"> <StackPanel Orientation="Horizontal"> <Button Content="首页" Style="{DynamicResource PageNumButton}" Click="btnHome_Click" Margin="0,0,10,0" Foreground="#393838" Background="White" FontSize="12" Width="40" Height="22" Cursor="Hand"/> <!--<ItemsControl ItemsSource="{Binding Pages}" HorizontalAlignment="Center"> <ItemsControl.ItemTemplate> <DataTemplate> <Button Name="but_Pages" Content="{Binding Name}" Margin="0,0,10,0" Style="{DynamicResource PageNumButton}" Foreground="#393838" FontSize="12" Background="White" Click="but_Pages_Click" Width="30" Height="22" Cursor="Hand"></Button> </DataTemplate> </ItemsControl.ItemTemplate> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <WrapPanel/> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> </ItemsControl>--> <Button Content="上一页" Style="{DynamicResource PageNumButton}" Click="btnLast_Click" Margin="0,0,10,0" Foreground="#393838" Background="White" FontSize="12" Width="40" Height="22" Cursor="Hand"/> <Button Content="下一页" Style="{DynamicResource PageNumButton}" Click="btnNext_Click" Margin="0,0,10,0" Foreground="#393838" Background="White" FontSize="12" Width="40" Height="22" Cursor="Hand"/> <Button Content="尾页" Style="{DynamicResource PageNumButton}" Click="btnEnd_Click" Foreground="#393838" Background="White" FontSize="12" Width="40" Height="22" Cursor="Hand"/> </StackPanel> <TextBlock VerticalAlignment="Center" Margin="20,0,0,0" FontSize="10"> <TextBlock Text="【共"/> <TextBlock Text="{Binding Total}" Foreground="#329FEE"/> <TextBlock Text="页】"/> <TextBlock Text="【当前第"/> <TextBlock Text="{Binding CurrentSize}" Foreground="#329FEE" /> <TextBlock Text="页】"/> </TextBlock> </StackPanel>
以上是关于WPF Listview 排序加分页的主要内容,如果未能解决你的问题,请参考以下文章
WPF 实现 DataGrid/ListView 分页控件(转)
WPF 实现 DataGrid/ListView 分页控件(转)