原创不易,打字不易,截图不易,多多点赞,送人玫瑰,留有余香,财务自由明日实现
1、列表分页
这里我们以物资列表分页为例来讲讲如何实现分页,wpf中没有现成封装好的分页,需要自己封装实现。分页功能可能封装成一个用户控件,这里以最简单方式来实现,虽然功能不完美,界面不美丽,但总是基本功能还是有的。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using West.StoreMgr.Service;
namespace West.StoreMgr.View
{
/// <summary>
/// GoodsView.xaml 的交互逻辑
/// </summary>
public partial class GoodsView : UserControl
{
public GoodsView()
{
InitializeComponent();
//窗体加载事件
Loaded += (s, e) =>
{
DataGridBind(Convert.ToInt32(label1.Content));
};
}
public const int pageSize = 10;
List<Goods> goodsdt = new GoodsService().Select();
public int PageSum = 0; //总页数
/// <summary>
/// 数据绑定
/// </summary>
/// <param name="pageIndex"></param>
private void DataGridBind(int pageIndex)
{
int recordsum = goodsdt.Count(); //表中记录总数
//判断总页数
if (recordsum % pageSize == 0)
{
PageSum = recordsum / pageSize;
}
else
{
PageSum = recordsum / pageSize + 1;
}
dataGrid1.ItemsSource = goodsdt.Skip((pageIndex - 1) * pageSize).Take(pageSize) ;
label1.Content = Convert.ToString(pageIndex);
label2.Content = Convert.ToString(PageSum);
label1d.Content = Convert.ToString(recordsum);
}
/// <summary>
/// 上一页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button7_Click(object sender, RoutedEventArgs e)
{
if (Convert.ToInt32(label1.Content) > 1)
{
DataGridBind(Convert.ToInt32(label1.Content) - 1);
}
}
/// <summary>
/// 下一页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button8_Click(object sender, RoutedEventArgs e)
{
if (Convert.ToInt32(label1.Content) < Convert.ToInt32(label2.Content))
{
DataGridBind(Convert.ToInt32(label1.Content) + 1);
}
}
/// <summary>
/// 调转到第n页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button9_Click(object sender, RoutedEventArgs e)
{
if (Convert.ToInt32(textBox1.Text) >= 1 && Convert.ToInt32(textBox1.Text) <= Convert.ToInt32(label2.Content))
{
DataGridBind(Convert.ToInt32(textBox1.Text));
}
}
}
}
2、文章回顾
3、项目总结
本项目是一个基于C#+WPF实现的仓库管理系统,系统规模较小,适合入门级的项目练练手,但项目还是具有较高的学习价值,它采用mvvmlight框架,EF框架,WPF前端等技术构成。对于学习来说,可以学习到MVVM模型的深刻应用,用户控件的完美应用,是掌握WPF开发技术的一大力作,学习就是要逐步拔高,层层进步,有这个项目练手,其他wpf项目拿捏得死死的,整个项目分27次完工,真是太帅了,是你的良师益友,元气响响,打工加油。