【WPF】ListView自定义分页
XAML:
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="*"/>
- <RowDefinition Height="30"/>
- </Grid.RowDefinitions>
- <ListView Grid.Row="0" ItemsSource="{Binding Lst_bind}">
- <ListView.View>
- <GridView>
- <GridView.Columns>
- <GridViewColumn DisplayMemberBinding="{Binding Name}"
- Width="200" Header="名字"/>
- <GridViewColumn DisplayMemberBinding="{Binding Age}"
- Width="200" Header="年龄"/>
- <GridViewColumn DisplayMemberBinding="{Binding Address}"
- Width="200" Header="地址"/>
- </GridView.Columns>
- </GridView>
- </ListView.View>
- </ListView>
- <StackPanel Orientation="Horizontal" Grid.Row="1">
- <ItemsControl ItemsSource="{Binding Pages}">
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <WrapPanel>
- <Button Content="{Binding Name}" Background="Red" Foreground="White"
- Width="25" VerticalAlignment="Center" Click="Button_Click_1"/>
- </WrapPanel>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- <!--这里用WrapPanel 当容器放Button-->
<ItemsControl.ItemsPanel>- <ItemsPanelTemplate>
- <WrapPanel Orientation="Horizontal"/>
- </ItemsPanelTemplate>
- </ItemsControl.ItemsPanel>
- </ItemsControl>
- <TextBlock VerticalAlignment="Center" Foreground="Black">
- <TextBlock Text="【共"/>
- <TextBlock Text="{Binding Total}" Foreground="Red"/>
- <TextBlock Text="页】"/>
- <TextBlock Text="【当前"/>
- <TextBlock Text="{Binding Currentsize}" Foreground="Red"/>
- <TextBlock Text="页】"/>
- </TextBlock>
- </StackPanel>
- </Grid>
后台代码:
Models:
- public class Pages
- {
- public string Name { get; set; }
- public int PageSize { get; set; }
- }
- public class User
- {
- public string Name { get; set; }
- public int Age { get; set; }
- public string Address { get; set; }
- }
ViewMode:
- class PageDataManager: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<Pages> pages;
- public List<Pages> Pages
- {
- get { return pages; }
- set
- {
- pages = value;
- NotifyPropertyChanged("Pages");
- }
- }
- private List<User> lst_user;
- public List<User> Lst_user
- {
- get { return lst_user; }
- set { lst_user = value; NotifyPropertyChanged("Lst_user"); }
- }
- private List<User> lst_bind;
- public List<User> Lst_bind
- {
- get { return lst_bind; }
- set { lst_bind = value; NotifyPropertyChanged("Lst_bind"); }
- }
- //负责监视属性的变化
- public event PropertyChangedEventHandler PropertyChanged;
- public void NotifyPropertyChanged(string Propertyname)
- {
- if (PropertyChanged != null)
- {
- PropertyChanged(this, new PropertyChangedEventArgs(Propertyname));
- }
- }
- public PageDataManager()
- {
- this.Number = ;
- this.Lst_user = new List<User>();
- for (int i = ; i <= ; i++)
- {
- Lst_user.Add(new User() { Name="张三"+i.ToString(), Age=, Address="中国河南" });
- }
- //总页数=总数/每页显示的数
- this.Total = Lst_user.Count()/Number;
- //初始化页数数组
- this.Pages = new List<Pages>();
- for (int i = ; i <= Total; i++)
- {
- this.Pages.Add(new Pages() { Name=i.ToString(), PageSize=i});
- }
- this.Currentsize = ;
- Pager(Currentsize);
- }
- //分页方法
- public void Pager(int cize)
- {
- this.Currentsize = cize;
- this.Lst_bind = this.Lst_user.Take(this.Number * cize).Skip(this.Number * (cize - )).ToList();
- }
- }
MainPage.cs
- public partial class MainWindow : Window
- {
- PageDataManager data = new PageDataManager();
- public MainWindow()
- {
- InitializeComponent();
- this.DataContext = data;
- }
- private void Button_Click_1(object sender, RoutedEventArgs e)
- {
- data.Pager(((sender as Button).DataContext as Pages).PageSize);
- }
- }
【WPF】ListView自定义分页的更多相关文章
- WPF管理系统自定义分页控件 - WPF特工队内部资料
最近做一个演示的管理系统项目,需要用到分页控件,在网上找了很多,依然找到与UI模版匹配的,最后干脆自己写一个. 分页控件分析: 1.分页控件分简单显示和复杂显示两种: 2.包含上一页.下一页以及页码明 ...
- WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: Dat ...
- 【转】WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等. 本文主要内容: DataGrid自定义样式: ListView自定义样式: 二.Dat ...
- WPF自定义分页控件,样式自定义,简单易用
WPF自定义分页控件 做了许久伸手党,终于有机会贡献一波,搜索一下WPF分页控件,还是多,但是不太通用,主要就是样式问题,这个WPF很好解决,还有一个就是分页控件嘛,只关心几个数字的变动就行了,把页码 ...
- Android中使用ListView实现分页刷新(线程休眠模拟)
当要显示的数据过多时,为了更好的提升用户感知,在很多APP中都会使用分页刷新显示,比如浏览新闻,向下滑动到当前ListView的最后一条信息(item)时,会提示刷新加载,然后加载更新后的内容.此过程 ...
- Android中使用ListView实现分页刷新(线程休眠模拟)(滑动加载列表)
当要显示的数据过多时,为了更好的提升用户感知,在很多APP中都会使用分页刷新显示,比如浏览新闻,向下滑动到当前ListView的最后一条信息(item)时,会提示刷新加载,然后加载更新后的内容.此过程 ...
- Android基本控件之listView(三)<用ListView实现分页加载>
我们之前讨论了ListView的基本使用方法和ListView的优化 今天我们再来讨论一个关于ListView的一个新的东西~就是分页加载.那么什么是分页加载呢?简单点说,就是"下拉刷新&q ...
- [WPF]ListView点击列头排序功能实现
[转] [WPF]ListView点击列头排序功能实现 这是一个非常常见的功能,要求也很简单,在Column Header上显示一个小三角表示表示现在是在哪个Header上的正序还是倒序就可以了. ...
- ListView实现分页加载(一)制作Demo
一.什么是分页加载 在下面的文章中,我们来讲解LitView分页加载的实现.什么是分页加载呢?我们先看几张效果图吧,如下: ...
随机推荐
- discuz开发,登录次数过多,锁定解决方法
到数据库里的表找到pre_common_failedlogin 和pre_ucenter_failedlogins清空里面的内容即可. truncate table pre_common_failed ...
- 数据分析与展示---anaconda的使用
一:安装 官方源:https://repo.continuum.io/archive/(太慢) 清华源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/ar ...
- rabbitmq常见运维命令和问题总结
常见运维命令作用: yum安装erlang的环境配置: ERLANG_HOME=/usr/lib64/erlang export PATH=$PATH:$ERLANG_HOME/bin 常见rabbi ...
- ZOJ 3787 Access System 水
LINK:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3787 思路:结构体 时间转化为秒记录下最小并且排序就好了 /** ...
- 用英文写Email的注意事项
- (64位)本体学习程序(ontoEnrich)系统配置说明文档
1系统环境 64位 Ubuntu 2 第三方依赖库配置 boost_1_44_0 #解压boost_1_44_0.tar.gz 到 /usr/local.如果出现权限问题,请用sudo执行该命令 ta ...
- Web 开发者不可不知的15条编码原则
HTML 已经走过了近20的发展历程.从HTML4到XHTML,再到最近十分火热的HTML5,它几乎见证了整个互联网的发展.但是,即便到现在,有很多基础的概念和原则依然需要开发者高度注意.下面,向大家 ...
- 为什么 .NET 会被叫做 .NET?
微软开发.NET Framework是在20世纪90年代后期,最初是叫做“下一代Windows服务”(Next Generation Windows Services 简称 NGWS). 那么为什么微 ...
- 【BZOJ4237】稻草人 [分治][单调栈]
稻草人 Time Limit: 40 Sec Memory Limit: 256 MB[Submit][Status][Discuss] Description JOI村有一片荒地,上面竖着N个稻草 ...
- 【BZOJ】2049: [Sdoi2008]Cave 洞穴勘测 LCT
[题意]给定n个点和m个操作,每次操作:1.连接2个点.2.断开2个点.3.查询2个点是否连通.m<=2*10^5. [算法]Link-Cut Tree [题解]LCT模板题,Link,Cut, ...