背景:最近在写项目的时候需要写一个简单的分页功能,因项目需要,没有改为MVVM模式,只需要在后台实现

1、呈现效果如下:

接下来就来上代码,看看怎么实现的

1、界面代码

                 <StackPanel Orientation="Horizontal"
HorizontalAlignment="Right">
<TextBlock TextWrapping="WrapWithOverflow"
HorizontalAlignment="Right"
Margin="5,0,5,0"
VerticalAlignment="Center"
Text="{Binding OrderCount}">
</TextBlock>
<Button ToolTip="上一页"
Width=""
Height=""
FontSize=""
Name="BtnPreviousPage"
Background="#FFFFFF"
Click="BtnPreviousPage_Click"
Margin="5,0,5,0">
</Button>
<Border BorderBrush="#009639"
BorderThickness=""
Width=""
Height=""
Margin="5,0,5,0">
<TextBlock TextWrapping="WrapWithOverflow"
Text="{Binding CurrentPage}"
Foreground="#009639"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
</Border>
<Button ToolTip="下一页"
Width=""
Height=""
FontSize=""
Background="#FFFFFF"
Name="BtnNextPage"
Click="BtnNextPage_Click"
Margin="5,0,5,0">
</Button>
</StackPanel>

界面代码

2、后台代码

         private string _amountMoney;

         private string _orderCount;

         private int _currentPage = ;

         private int _pageSize = ;

         /// <summary>
/// 未上传订单总数
/// </summary>
private int _count; List<OrderJMSStatus> mList = new List<OrderJMSStatus>(); public int CurrentPage
{
get { return _currentPage; }
set
{
if (_currentPage != value)
{
_currentPage = value;
RaisePropertyChanged("CurrentPage");
}
}
} public string OrderCount
{
get { return _orderCount; }
set
{
if (_orderCount != value)
{
_orderCount = value;
RaisePropertyChanged("OrderCount");
}
}
} public string AmountMoney
{
get { return _amountMoney; }
set
{
if (_amountMoney != value)
{
_amountMoney = value;
RaisePropertyChanged("AmountMoney");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void RaisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
private int GetPageNumber(int count, int rowNumber)
{
if (count == || rowNumber == )
{
return ;
}
int pageNumber = count / rowNumber;
if (count % rowNumber != )
{
pageNumber++;
}
return pageNumber;
} private void BtnNextPage_Click(object sender, RoutedEventArgs e)
{ if (CurrentPage == GetPageNumber(_count, _pageSize))
{
return;
} List<OrderJMSStatus> result = mList.Skip(CurrentPage * _pageSize).Take(_pageSize).ToList(); MessageList.Clear();
MessageList = result;
CurrentPage++;
} private void BtnPreviousPage_Click(object sender, RoutedEventArgs e)
{
if (CurrentPage == )
{
return;
} List<OrderJMSStatus> result = new List<OrderJMSStatus>(); if (CurrentPage == )
{
result = mList.Take(_pageSize).ToList();
}
else
{
result = mList.Skip((CurrentPage - ) * _pageSize).Take(_pageSize).ToList();
} MessageList.Clear();
MessageList = result; CurrentPage--;
}

后台代码

实现过程基本上就是这样,希望能对你有所帮助

WPF最简单的分页控件的更多相关文章

  1. WPF简单的分页控件实现

    XAML代码(使用ItemsControl控件实现): <UserControl x:Class="SunCreate.Vipf.Client.UI.CityDoor.PageCont ...

  2. WPF 实现 DataGrid/ListView 分页控件

    在WPF中,通常会选用DataGrid/ListView进行数据展示,如果数据量不多,可以直接一个页面显示出来.如果数据量很大,2000条数据,一次性显示在一个页面中,不仅消耗资源,而且用户体验也很糟 ...

  3. asp.net mvc简单实现基于Razor的分页控件

    最近在写一些web应用了解了一下asp.net mvc发现的确好用,所以直接就干上了.不过在使用asp.net mvc的Razor模板的情况并不向传统webform那样可以使用控件.但从Razor的功 ...

  4. uinty3d使用ugui封装一个分页控件

    我们在显示数据时有的数据比较多,手机内存有限,我们不可能分配很多的控件来显示这些数据,分页是一个不错的选择.比如玩家交易行.我们现在封装一个自己简单的分页控件来显示玩家交易行. 分页控件的原理其实很简 ...

  5. vue分页控件

    下载:https://pan.baidu.com/s/1c125Vgc 一个简单的分页控件: 自动加载模式: 手动加载模式: loading图标使用了iconfont: 主要方法: beginRefr ...

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

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

  7. 两款不同应用场景的Wpf分页控件

    简介 今天给大家分享两个Wpf分页控件,本篇博客主要介绍一些实现思路和使用方法,具体实现和应用代码请参考文末的Demo链接 废话不多说,先看一下效果~ (两款控件显示效果是一样的) 实现思路 一款控件 ...

  8. WPF 分页控件 WPF 多线程 BackgroundWorker

    WPF 分页控件 WPF 多线程 BackgroundWorker 大家好,好久没有发表一篇像样的博客了,最近的开发实在头疼,很多东西无从下口,需求没完没了,更要命的是公司的开发从来不走正规流程啊, ...

  9. 自己写的简单的jQuery分页控件

    因为是内部项目,需要分页控件,网上找了一大堆,给领导一看,都说不行,原因很简单,太复杂,领导就想要个简单点的,类似百度的分页,可是自己也没写过Jquery控件,硬着头皮找了些资料,写了这个分页控件,目 ...

随机推荐

  1. C++等号操作符重载

    在新学操作符重载时最令人头疼的可能就是一些堆溢出的问题了,不过呢,只要一步步的写好new 与 delete.绝对不会有类似的问题. 当时我们编译可以通过,但是运行会出错,因为对象s1与s2进行赋值时, ...

  2. NOIP模拟测试19考试反思

    这次考试是存在很大问题的,(如果不是T1T2出乎意料地A了,鬼知道会发生什么) T2A是情理之中,考试的时候测的极限数据跑的很快(无论m什么范围),但是T1真的...... T3没有分配太多的时间+没 ...

  3. LeetCode刷题总结-数组篇(下)

    本期讲O(n)类型问题,共14题.3道简单题,9道中等题,2道困难题.数组篇共归纳总结了50题,本篇是数组篇的最后一篇.其他三个篇章可参考: LeetCode刷题总结-数组篇(上),子数组问题(共17 ...

  4. P3043 [USACO12JAN]牛联盟(并查集+数学)

    (m<n<=1e5,有重边) 题目表述有问题..... 给定一张图(不一定联通),每条边可以选择连接的两个点之一,剩余的点可以自己成对,问方案数. 一开始是真的被吓到了....觉得可写性极 ...

  5. 七月月赛T2

    题目描述 “X龙珠”是一款益智小游戏.游戏中有 n(2∣n) 个编号互不相同龙珠按照给定的顺序排成一个队列,每个龙珠上面都有一个编号.每次操作时,选择并取出龙珠队列中相邻的两个龙珠,放到目标队列的末尾 ...

  6. inline-block元素间隙产生及去除方法

    当我们把元素属性display设置成inline-block时,元素之间就会产生间隙 <!DOCTYPE html><html> <head> <meta c ...

  7. vue 单页面应用 app自适应方案

    本文是使用淘宝的方案进行布局开发的,遇到的问题是会对app内使用的第三方插件,当页面进行缩放后,比如高德地图中的文字会显得过小,我使用的方法就是手动的动每一个尺寸进行手动的px 到 rem的替换,而不 ...

  8. Hybrid App: 看看第三方WebViewJavascriptBridge是如何来实现Native和JavaScript交互

    一.简介 在前面两篇文章中已经介绍了Native与JavaScript交互的几种方式,依次是JavaScriptCore框架.UI组件UIWebView.WebKit框架,这几种方式都是苹果公司提供的 ...

  9. Electron 菜单切换主题与css替换 ts编写

    ////目标css<link rel="stylesheet" id="theme_css" href="路径"> ////ts ...

  10. Xshell选中的同时把内容复制到剪贴板

    1.设置对话框 工具 -> 选项 -> 键盘和鼠标 -> 将选定的文本自动复制到剪贴板 2.贴图如下 2.1.打开设置对话框 2.2.设置键盘鼠标,左键复制