WPF:ListView 分页
- 布局MainWindow.xaml
-
<ListView Name="list_Reg" ItemsSource="{Binding Source={StaticResource Data}}" Style="{StaticResource ListViewStyle}"><ListView.View><GridView><!--列头style--><GridView.ColumnHeaderContainerStyle><Style TargetType="GridViewColumnHeader"><Setter Property="Background" Value="CadetBlue"/><Setter Property="Foreground" Value="White"/><Setter Property="FontSize" Value="25"/><Setter Property="Padding" Value="10,0"/><Style.Triggers><Trigger Property="IsMouseOver" Value="True"><Setter Property="Background" Value="#FF1975A0"/></Trigger></Style.Triggers></Style></GridView.ColumnHeaderContainerStyle><GridViewColumn Header="科室" DisplayMemberBinding="{Binding DeptName}"/><GridViewColumn Header="开诊科目" DisplayMemberBinding="{Binding RegName}"/><GridViewColumn Header="周一" DisplayMemberBinding="{Binding Show1}" Width="150"/><GridViewColumn Header="周二" DisplayMemberBinding="{Binding Show2}" Width="150"/><GridViewColumn Header="周三" DisplayMemberBinding="{Binding Show3}" Width="150"/><GridViewColumn Header="周四" DisplayMemberBinding="{Binding Show4}" Width="150"/><GridViewColumn Header="周五" DisplayMemberBinding="{Binding Show5}" Width="150"/></GridView></ListView.View></ListView></Canvas><StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal"><ItemsControl ItemsSource="{Binding Pages}"><ItemsControl.ItemTemplate><DataTemplate><Button Name="but_Pages" Content="{Binding Name}"Margin="5" Foreground="White" Background="CadetBlue" Padding="10,5" Click="but_Pages_Click"></Button></DataTemplate></ItemsControl.ItemTemplate><ItemsControl.ItemsPanel><ItemsPanelTemplate><WrapPanel/></ItemsPanelTemplate></ItemsControl.ItemsPanel></ItemsControl><TextBlock VerticalAlignment="Center"><TextBlock Text="【共"/><TextBlock Text="{Binding Total}" Foreground="Yellow"/><TextBlock Text="页】"/><TextBlock Text="【当前"/><TextBlock Text="{Binding CurrentSize}" Foreground="Yellow"/><TextBlock Text="页】"/></TextBlock></StackPanel>
- 每隔10秒翻页,循环
-
public partial class MainWindow : Window{ViewPages viewPages = new ViewPages();Timer timer = new Timer();int _currCount=1;public MainWindow(){InitializeComponent();this.DataContext = viewPages;}private void window_Loaded(object sender, RoutedEventArgs e){if (viewPages.Total > 1){//当总页数大于1时才翻页timer.Interval = 10000;//5秒变换一次timer.Enabled = true;timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);}}private void but_Pages_Click(object sender, RoutedEventArgs e){//单击按钮时也翻页viewPages.Fun_Pager(((sender as Button).DataContext as Page).PageSize);}void timer_Elapsed(object sender, ElapsedEventArgs e){Dispatcher.BeginInvoke(new Action(() =>{//翻页_currCount = viewPages.CurrentSize+1;if (_currCount > viewPages.Total){viewPages.CurrentSize = 1;_currCount = viewPages.CurrentSize;})); } }
- 翻页函数 ViewPages.cs
-
public class ViewPages:INotifyPropertyChanged{private int _number;public int Number{get { return _number; }set {_number = value;NotifyPropertyChanged("Number");}}private int _currentSize;public int CurrentSize{get { return _currentSize; }set{_currentSize = value;NotifyPropertyChanged("CurrentSize");}}private int _total;public int Total{get { return _total; }set{_total = value;NotifyPropertyChanged("Total");}}private List<Page> _pages;public List<Page> Pages{get { return _pages; }set{_pages = value;NotifyPropertyChanged("Pages");}}private List<WPF_OPRegDept.DataOP.Reg> _listRegDept;public List<WPF_OPRegDept.DataOP.Reg> ListRegDept{get { return _listRegDept; }set{_listRegDept = value;NotifyPropertyChanged("ListRegDept");}}private List<WPF_OPRegDept.DataOP.Reg> _listBind;public List<WPF_OPRegDept.DataOP.Reg> ListBind{get { return _listBind; }set{_listBind = value;NotifyPropertyChanged("ListBind");}}#region INotyfyPropertyChanged 成员public event PropertyChangedEventHandler PropertyChanged;public void NotifyPropertyChanged(string PropertyName){if(PropertyChanged!=null){PropertyChanged(this,new PropertyChangedEventArgs(PropertyName));}}#endregionpublic ViewPages(){DataOP dataOP=new DataOP();this.Number = 14;//设置每页显示数目this.ListRegDept = new List<DataOP.Reg>();//初始化数据ListRegDept = dataOP.GetRegDept();this.Total = ListRegDept.Count() / this.Number + 1;//获取总页数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();}}public class Page{public string Name { get; set; }public int PageSize { get; set; }} }
WPF:ListView 分页相关推荐
- WPF 实现 DataGrid/ListView 分页控件
原文:WPF 实现 DataGrid/ListView 分页控件 在WPF中,通常会选用DataGrid/ListView进行数据展示,如果数据量不多,可以直接一个页面显示出来.如果数据量很大,200 ...
- android listview分页显示,Android应用中使用ListView来分页显示刷新的内容
点击按钮刷新1.效果如下: 实例如下: 上图的添加数据按钮可以换成一个进度条 因为没有数据所以我加了一个按钮添加到数据库用于测试:一般在服务器拉去数据需要一定的时间,所以可以弄个进度条来提示用户: ...
- 基于Android官方AsyncListUtil优化经典ListView分页加载机制(二)
基于Android官方AsyncListUtil优化经典ListView分页加载机制(二) 我写的附录文章1,介绍了如何使用Android官方的分页加载框架AsyncListUtil优化改进常见的Re ...
- Android ListView分页,动态添加数据
1.ListView分页的实现,重点在于实现OnScrollListener接口,判断滑动到最后一项时,是否还有数据可以加载, 我们可以利用listView.addFootView(View v)方法 ...
- 分组显示的ListView分页加载数据
参考: http://www.cnblogs.com/qianxudetianxia/archive/2011/06/07/2074326.html 分组的ListView的拖拽 http://w ...
- [WPF]ListView点击列头排序功能实现
[WPF]ListView点击列头排序功能实现 这是一个非常常见的功能,要求也很简单,在Column Header上显示一个小三角表示表示现在是在哪个Header上的正序还是倒序就可以了.微软的MSD ...
- WPF ListView展示层叠信息
原文:WPF ListView展示层叠信息 通常我们在ListView中展示一列同类数据,例如城市名称.不过可以对ListView的DataTemplate稍作修改,让其显示层叠信息.例如:需要在Li ...
- WPF ListView中自动生成的列
目录 介绍 为什么我们在这里 使用情况 其他可选的视觉样式 ColWidth属性 ColSort属性 ColCellTemplate属性 另一种样式选项--排序箭头颜色 代码 属性 排序装饰器 Aut ...
- ListView分页详解(非常有用)
一.ListView分页: (一).目的: Android 应用开发中,采用ListView组件来展示数据是很常用的功能,当一个应用要展现很多的数据时,一般情况下都不会把所有的数据一 ...
- android json分页,移动测试之异步任务+JSON解析+ListView分页
一.利用异步任务+JSON解析+ListView分页来实现网络访问数据显示在ListView中: (一).示例代码: public class MainActivity extends Activit ...
最新文章
- Vue组件的三种调用方式
- Java中的泛型 --- Java 编程思想
- 【Webview相关问题】控制字符引发的惨案及Base64
- 用神经网络做分子动力模拟 二氟甲烷,二氯甲烷,二溴甲烷并计算键值
- 3.1 Tensorflow: 批标准化(Batch Normalization)
- Windows下Python包和模块的安装方法(亲测手动安装)
- docker 安装入门
- 异常作弊– Java 8 Lambdas
- Kaggle比赛(二)House Prices: Advanced Regression Techniques
- python实现自动打电话软件_电销自动打电话app
- JVM——字节码指令(转)
- 机器视觉硬件选型相关知识
- 测试小兵成长记:柳暗花明又一村
- 安装Ubuntu系统卡在载入界面,显示正在安装open vm tools
- amh搭建php网站,AMH6.0发布 (免费版本) – AMH终于可以免费用了。
- Flare-On Challenge4 Writeup
- Kubernetes1.23.5集群部署
- 用rpm安装卸载软件
- 淘宝api app版淘宝店铺商品搜索
- 解决Github上下载项目失败或速度太慢的问题