【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分页加载的实现.什么是分页加载呢?我们先看几张效果图吧,如下: ...
随机推荐
- git clone 无权限
错误提示: remote: Coding.net Tips : [You have no permission to access this repo.] fatal: unable to acces ...
- 使用EA软件画数据库图表
使用EA软件可以画出数据库的图表并生成SQL语句,非常方便,下面介绍一下步骤 1.先创建一个默认的工程 2.新建一个视图 3.在视图中添加一个图表 4.使用图表工具箱画表 没有出现toolbox的话, ...
- git相关网址
git入门教程: 廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b00 ...
- 洛谷 2186 小Z的栈函数
https://www.luogu.org/problem/show?pid=2186 题目描述 小Z最近发现了一个神奇的机器,这个机器的所有操作都是通过维护一个栈来完成的,它支持如下11个操作: N ...
- macbook 安装任意来源
sudo spctl --master-disable Comand+r Csrutil disable Reboot
- 【CodeForces】585 E. Present for Vitalik the Philatelist
[题目]E. Present for Vitalik the Philatelist [题意]给定n个数字,定义一种合法方案为选择一个数字Aa,选择另外一些数字Abi,令g=gcd(Ab1...Abx ...
- cocos2dx学习,转摘一些链接
cocos2d-x学习笔记09:动作2:持续动作 ccBezierConfig 贝塞尔坐标点是相对的 Box2DTestBed很有意思的demo,可惜自己水平有限针对其实现还是没弄明白,以后有时间多学 ...
- python3爬虫.4.下载煎蛋网妹子图
开始我学习爬虫的目标 ----> 煎蛋网 通过设置User-Agent获取网页,发现本该是图片链接的地方被一个js函数代替了 于是全局搜索到该函数 function jandan_load_im ...
- 线程句柄和线程ID的区别
●CreateThread() API 用于创建线程. API 返回同时线程句柄,并通过参数得到线程标识符 (ID). 线程句柄有完全访问权创建线程对象. 运行线程时线程 ID 唯一标识线程在系统级别 ...
- hdu 1498 50 years, 50 colors(二分匹配_匈牙利算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1498 50 years, 50 colors Time Limit: 2000/1000 MS (Ja ...