WPF:ListView 分页

- 布局MainWindow.xaml
<ListView Name="list_Reg" ItemsSource="{Binding Source={StaticResource Data}}" Style="{StaticResource ListViewStyle}">
<ListView.View>
<GridView>
<!--列头style-->
<GridView.ColumnHeaderContainerStyle>
<Style TargetType="GridViewColumnHeader">
<Setter Property="Background" Value="CadetBlue"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontSize" Value="25"/>
<Setter Property="Padding" Value="10,0"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#FF1975A0"/>
</Trigger>
</Style.Triggers>
</Style>
</GridView.ColumnHeaderContainerStyle> <GridViewColumn Header="科室" DisplayMemberBinding="{Binding DeptName}"/>
<GridViewColumn Header="开诊科目" DisplayMemberBinding="{Binding RegName}"/>
<GridViewColumn Header="周一" DisplayMemberBinding="{Binding Show1}" Width="150"/>
<GridViewColumn Header="周二" DisplayMemberBinding="{Binding Show2}" Width="150"/>
<GridViewColumn Header="周三" DisplayMemberBinding="{Binding Show3}" Width="150"/>
<GridViewColumn Header="周四" DisplayMemberBinding="{Binding Show4}" Width="150"/>
<GridViewColumn Header="周五" DisplayMemberBinding="{Binding Show5}" Width="150"/>
</GridView>
</ListView.View>
</ListView>
</Canvas> <StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
<ItemsControl ItemsSource="{Binding Pages}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Name="but_Pages" Content="{Binding Name}"
Margin="5" Foreground="White" Background="CadetBlue" Padding="10,5" Click="but_Pages_Click"></Button>
</DataTemplate>
</ItemsControl.ItemTemplate> <ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl> <TextBlock VerticalAlignment="Center">
<TextBlock Text="【共"/>
<TextBlock Text="{Binding Total}" Foreground="Yellow"/>
<TextBlock Text="页】"/> <TextBlock Text="【当前"/>
<TextBlock Text="{Binding CurrentSize}" Foreground="Yellow"/>
<TextBlock Text="页】"/>
</TextBlock>
</StackPanel>- 每隔10秒翻页,循环
public partial class MainWindow : Window
{
ViewPages viewPages = new ViewPages();
Timer timer = new Timer();
int _currCount=1;
public MainWindow()
{
InitializeComponent();
this.DataContext = viewPages;
} private void window_Loaded(object sender, RoutedEventArgs e)
{
if (viewPages.Total > 1)
{//当总页数大于1时才翻页
timer.Interval = 10000;//5秒变换一次
timer.Enabled = true;
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
}
} private void but_Pages_Click(object sender, RoutedEventArgs e)
{//单击按钮时也翻页
viewPages.Fun_Pager(((sender as Button).DataContext as Page).PageSize);
} void timer_Elapsed(object sender, ElapsedEventArgs e)
{
Dispatcher.BeginInvoke(new Action(() =>
{
//翻页
_currCount = viewPages.CurrentSize+1;
if (_currCount > viewPages.Total)
{
viewPages.CurrentSize = 1;
_currCount = viewPages.CurrentSize;
}));
}
}
- 翻页函数 ViewPages.cs
public class ViewPages: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<Page> _pages;
public List<Page> Pages
{
get { return _pages; }
set
{
_pages = value;
NotifyPropertyChanged("Pages");
}
} private List<WPF_OPRegDept.DataOP.Reg> _listRegDept;
public List<WPF_OPRegDept.DataOP.Reg> ListRegDept
{
get { return _listRegDept; }
set
{
_listRegDept = value;
NotifyPropertyChanged("ListRegDept");
}
} private List<WPF_OPRegDept.DataOP.Reg> _listBind;
public List<WPF_OPRegDept.DataOP.Reg> ListBind
{
get { return _listBind; }
set
{
_listBind = value;
NotifyPropertyChanged("ListBind");
}
} #region INotyfyPropertyChanged 成员
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged(string PropertyName)
{
if(PropertyChanged!=null)
{
PropertyChanged(this,new PropertyChangedEventArgs(PropertyName));
}
}
#endregion public ViewPages()
{
DataOP dataOP=new DataOP();
this.Number = 14;//设置每页显示数目
this.ListRegDept = new List<DataOP.Reg>();//初始化数据
ListRegDept = dataOP.GetRegDept(); this.Total = ListRegDept.Count() / this.Number + 1;//获取总页数 this.Pages = new List<Page>();//初始化所有页数数组
for (int i = 1; i <= this.Total; i++)
{
this.Pages.Add(new Page {Name=i.ToString(),PageSize=i });
}
this.CurrentSize = 1;//设置当前显示页面
Fun_Pager(this.CurrentSize); }
/// <summary>
/// 分页方法
/// </summary>
/// <param name="CurrentSize">当前页数</param>
public void Fun_Pager(int CurrentSize)
{
this.CurrentSize = CurrentSize;
this.ListBind = this.ListRegDept.Take(this.Number*this.CurrentSize)
.Skip(this.Number*(this.CurrentSize-1)).ToList();
}
} public class Page
{
public string Name { get; set; }
public int PageSize { get; set; }
}
}
WPF:ListView 分页的更多相关文章
- WPF ListView 选中问题
WPF ListView 选中问题 摘自:http://www.cnblogs.com/BBHor/archive/2013/04/28/VisualTreeHelper-PreviewMouseD ...
- Android --ListView分页
参考博客:Android ListView分页加载(服务端+android端)Demo 监听OnScrollListener事件 class OnListScrollListener implemen ...
- Android中ListView分页加载数据
public class MainActivity extends Activity { private ListView listView=null; //listview的数据填充器 privat ...
- [WPF]ListView点击列头排序功能实现
[转] [WPF]ListView点击列头排序功能实现 这是一个非常常见的功能,要求也很简单,在Column Header上显示一个小三角表示表示现在是在哪个Header上的正序还是倒序就可以了. ...
- android中listview分页载入数据
前段时间做的新浪微博项目一直想实现listview分页载入数据,今天最终实现了,哈哈!感觉挺好的,今天又写了个demo给大家分享下. 首先说下listview的优化方案,这也是面试中常考的题目.优化方 ...
- 【Android进阶】Listview分页加载数据的实现
Listview分页加载数据的实现 public class MainActivity extends Activity { protected static final int SUCCESS_GE ...
- Android ListView分页载入(服务端+android端)Demo
Android ListView分页载入功能 在实际开发中经经常使用到,是每一个开发人员必须掌握的内容,本Demo给出了服务端+Android端的两者的代码,并成功通过了測试. 服务端使用MyEcli ...
- ListView分页显示
出在:http://blog.csdn.net/tu_bingbing/article/details/13275107 当ListView要显示的数据过多时,为了更快的响应用户,这个 ...
- ListView 分页 排序、编辑、插入和删除
摘自网络地址:http://msdn.microsoft.com/zh-cn/magazine/cc337984.aspx ListView 基础 ListView 是模板驱动的控件,这意味着它默认情 ...
随机推荐
- 检测浏览器是否支持cookie方法
cookie 摘自: http://www.cnblogs.com/fish-li/archive/2011/07/03/2096903.html Cookie是什么? Cookie 是一小段文本信息 ...
- Netty之有效规避内存泄漏
有过痛苦的经历,特别能写出深刻的文章 —— 凯尔文. 肖 直接内存是IO框架的绝配,但直接内存的分配销毁不易,所以使用内存池能大幅提高性能,也告别了频繁的GC.但,要重新培养被Java的自动垃圾回收惯 ...
- eclipse +VISUALSVN SERVER 创建版本控制器,防止误操作(可视化操作,简单方便,不需要修改配置文件)
第一步:为eclipse安装Subclipse插件 打开eclipse,点击help-->Install New Software...弹出对话框,点击Add..(新增),以http://sub ...
- SpringMvc处理JSON
步骤如下: 1.加入jar包 2.编写目标方法,使其返回JSON对应的对象或集合 3.在方法上添加@ResponseBody注解 DispatcheServlet默认装配RequestMappingH ...
- MVC视图中读取ViewBag传递过来的HashTable表数据
视图中头部添加 @using System.Collections; 循环读取哈希表数据 <ul id="AccessView" class="sys_spec_t ...
- Java面试题问与答——编译时与运行时
在开发和设计的时候,我们需要考虑编译时,运行时以及构建时这三个概念.理解这几个概念可以更好地帮助你去了解一些基本的原理.下面是初学者晋级中级水平需要知道的一些问题. Q.下面的代码片段中,行A和行B所 ...
- 如何通过CRM评估客户价值和提高客户忠诚度?
随着市场经济的日益繁荣,同行业之间企业的竞争越来越激烈,企业纷纷各出奇招吸引和挖掘客户,力求让自己的品牌成为更多客户的第一选择.那么,我们可以用什么方法来评估客户价值,提高客户忠诚度呢? 在互联网时代 ...
- :before\:after伪元素用法
:before和:after这两个伪元素在真正的页面元素之前和之后插入一个额外的的元素,等效于下面的代码: <p> <span>:before</span> HTM ...
- asp.net 微信支付 错误解决方案
asp.net 微信支付 错误解决方案 在网上看到有人解决方案为: 解决方法 出现这种错误网上查出现有的原因是: 订阅号没有相关的权限 账号没有认证,没有相关的权限 那么这里遇到问题两种都不是.开发账 ...
- Python3基础 reverse 将列表倒序排列
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...