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自定义分页的更多相关文章

  1. WPF管理系统自定义分页控件 - WPF特工队内部资料

    最近做一个演示的管理系统项目,需要用到分页控件,在网上找了很多,依然找到与UI模版匹配的,最后干脆自己写一个. 分页控件分析: 1.分页控件分简单显示和复杂显示两种: 2.包含上一页.下一页以及页码明 ...

  2. WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: Dat ...

  3. 【转】WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等. 本文主要内容: DataGrid自定义样式: ListView自定义样式: 二.Dat ...

  4. WPF自定义分页控件,样式自定义,简单易用

    WPF自定义分页控件 做了许久伸手党,终于有机会贡献一波,搜索一下WPF分页控件,还是多,但是不太通用,主要就是样式问题,这个WPF很好解决,还有一个就是分页控件嘛,只关心几个数字的变动就行了,把页码 ...

  5. Android中使用ListView实现分页刷新(线程休眠模拟)

    当要显示的数据过多时,为了更好的提升用户感知,在很多APP中都会使用分页刷新显示,比如浏览新闻,向下滑动到当前ListView的最后一条信息(item)时,会提示刷新加载,然后加载更新后的内容.此过程 ...

  6. Android中使用ListView实现分页刷新(线程休眠模拟)(滑动加载列表)

    当要显示的数据过多时,为了更好的提升用户感知,在很多APP中都会使用分页刷新显示,比如浏览新闻,向下滑动到当前ListView的最后一条信息(item)时,会提示刷新加载,然后加载更新后的内容.此过程 ...

  7. Android基本控件之listView(三)<用ListView实现分页加载>

    我们之前讨论了ListView的基本使用方法和ListView的优化 今天我们再来讨论一个关于ListView的一个新的东西~就是分页加载.那么什么是分页加载呢?简单点说,就是"下拉刷新&q ...

  8. [WPF]ListView点击列头排序功能实现

    [转]   [WPF]ListView点击列头排序功能实现 这是一个非常常见的功能,要求也很简单,在Column Header上显示一个小三角表示表示现在是在哪个Header上的正序还是倒序就可以了. ...

  9. ListView实现分页加载(一)制作Demo

    一.什么是分页加载 在下面的文章中,我们来讲解LitView分页加载的实现.什么是分页加载呢?我们先看几张效果图吧,如下:                                       ...

随机推荐

  1. OpenCV---轮廓发现

    推文:OpenCV-Python教程(11.轮廓检测) 轮廓发现 是基于图像边缘提取的基础,寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终轮廓的发现 相关API findContours 发现轮 ...

  2. Scrapy的安装--------Windows、linux、mac等操作平台

    Scrapy安装 Scrapy的安装有多种方式,它支持Python2.7版本及以上或者是Python3.3版本及以上.下面来说py3环境下,scrapy的安装过程. Scrapy依赖的库比较多,至少需 ...

  3. Java实现链式存储的二叉树

    二叉树的定义: 二叉树(BinaryTree)是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的.分别称作这个根的左子树和右子树的二叉树组成. 二叉树的遍历方式主要 ...

  4. C# 遍历枚举

    C#中,如何获取(遍历)枚举中所有的值: public enum Suits { Spades, Hearts, Clubs, Diamonds, NumSuits } private static ...

  5. 【BZOJ】4753: [Jsoi2016]最佳团体 01分数规划+树上背包

    [题意]n个人,每个人有价值ai和代价bi和一个依赖对象ri<i,选择 i 时 ri 也必须选择(ri=0时不依赖),求选择k个人使得Σai/Σbi最大.n<=2500,ai,bi< ...

  6. Java面试中常问的Spring方面问题(涵盖七大方向共55道题,含答案)

    1.一般问题 1.1. 不同版本的 Spring Framework 有哪些主要功能? VersionFeatureSpring 2.5发布于 2007 年.这是第一个支持注解的版本.Spring 3 ...

  7. 探讨一个“无法创建JVM”的问题(已解决)

    ava版本:1.4 运行设置: -Xms1G -Xmx4G 报错: [ Incompatible initial and maximum heap sizes specified: ][ initia ...

  8. Lithium中关键特性更新

    Lithium中关键特性更新 1. Lithium特性更新概述 Lithium相对于Helium更新特性共27项,其中原有特性提升或增强13项,新增特性14项,如下表所示 特性类型 相对于Helium ...

  9. Go语言 2 变量、常量和数据类型

    文章由作者马志国在博客园的原创,若转载请于明显处标记出处:http://www.cnblogs.com/mazg/ Go学习群:415660935 2.1 变量 变量是对一块内存空间的命名,程序可以通 ...

  10. F - Warm up HDU - 4612 tarjan缩点 + 树的直径 + 对tajan的再次理解

    题目链接:https://vjudge.net/contest/67418#problem/F 题目大意:给你一个图,让你加一条边,使得原图中的桥尽可能的小.(谢谢梁学长的帮忙) 我对重边,tarja ...