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. Kubernetes - Deploy Containers Using YAML

    In this scenario, you'll learn how to use Kubectl to create and launch Deployments, Replication Cont ...

  2. git分支管理图

  3. JSTL获取当日时间与数据时间比较

    <jsp:useBean id="now" class="java.util.Date" /> <fmt:formatDate value=& ...

  4. Qt如何获得窗口的几何信息(Window Geometry)

    一个窗口除去窗框以后,余下部分称为客户区域.获得窗口的几何信息(坐标,长宽等)有以下两组命令: 1. 包括窗框(即整个窗口):x(), y(), frameGeometry(), pos(),  mo ...

  5. How to Evaluate Machine Learning Models, Part 4: Hyperparameter Tuning

    How to Evaluate Machine Learning Models, Part 4: Hyperparameter Tuning In the realm of machine learn ...

  6. windows上使用wordpress搭建博客

    环境windows8.1 需要的工具:wampserver.wordpress 首先先下载好wordpress源码和wampserver安装包 安装完成后开启wampserver 开启的状态是绿色的: ...

  7. lintcode 66.67.68 二叉树遍历(前序、中序、后序)

    AC代码: /** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode le ...

  8. 64_m3

    molequeue-doc-0.8.0-2.20161222giteb397e.fc26.no..> 05-Apr-2017 10:04 451570 molequeue-libs-0.8.0- ...

  9. react native系列 - 从零开始构建

    从零开始构建第一步,当然是从hello world开始,第一课我们没什么代码都不写,只用生成的代码来打包apk.为什么一开始就要学会打包,因为如果连打包都不会,以后做好了也没用.学会了打包,才能让我们 ...

  10. 安装Https证书

    安装证书 IIS 6 支持PFX格式证书,下载包中包含PFX格式证书和密码文件.以沃通证书为例: 文件说明: 1. 证书文件214083006430955.pem,包含两段内容,请不要删除任何一段内容 ...