本文主要是介绍WPF中datagrid分页,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
namespace WpfApplication1
{/// <summary>/// 枚举类型/// </summary>public enum sex{男,女};public class company{public string companyname;public string name;public string sex;public int age;public string job;}/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{List<company> ls_company = new List<company>();//用于分页public MainWindow(){InitializeComponent();DataGridBinding();}void DataGridBinding(){SqlConnection conn = new SqlConnection("data source=127.0.0.1;database=datagridtest;user id=sa;password=sa123456");SqlCommand com = new SqlCommand();com.Connection = conn;com.CommandText = "select * from company";DataSet ds = new DataSet();SqlDataAdapter sda = new SqlDataAdapter();sda.SelectCommand = com;try{sda.Fill(ds);//填充dataset}catch (Exception ex){MessageBox.Show(ex.Message);}finally{conn.Close();conn.Dispose();}//表示用于排序、筛选、搜索、编辑和导航的 DataTable 的可绑定数据的自定义视图。 //DataView 不存储数据,而是表示其对应的 DataTable 的已连接视图。 //对 DataView 的数据的更改将影响 DataTable。 对 DataTable 的数据的更改将影响与之关联的所有 DataViewforeach (DataRow m in ds.Tables[0].Rows){ls_company.Add(new company { companyname = m["companyname"].ToString(), name = m["name"].ToString(), sex = m["sex"].ToString(), age = int.Parse(m["age"].ToString()), job = m["job"].ToString() });}datagrid.ItemsSource = ds.Tables[0].DefaultView;//public DataView DefaultView { get; }}//number表示每个页面显示的记录数 currentSize表示当前显示页数 /// <summary>////// </summary>/// <param name="number">每页多少记录</param>/// <param name="currentSize">当前第几页</param>private void Binding(int number, int currentSize){List<company> ls_curent = new List<company>();int count = ls_company.Count;//多少条记录int totalpage = 0;//总页数int pageSize = int.Parse(textboxpage.Text);//总页数if (count % number == 0){pageSize = count / number;}else{pageSize = count / number + 1;}tbkTotal.Text = pageSize.ToString();tbkCurrentsize.Text = currentSize.ToString();ls_curent = ls_company.Take(number * currentSize).Skip(number * (currentSize - 1)).ToList(); //刷选第currentSize页要显示的记录集 datagrid.ItemsSource = ls_curent; //重新绑定dataGrid1 }
要点:
1、用Linq从list泛型中选择,有take以及skip方法
2、先将全部数据转存到list中,不过这仅仅适用于总量很少的数据
这篇关于WPF中datagrid分页的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!