【原创】自定义分页控件WPF

6 篇文章 0 订阅

目录

起因

思路

需求

部分代码

效果图

分页控件外观

总结

DEMO下载


说明:代码已封装成库,有需要者私我邮箱    bohekeji@vip.qq.com

起因

开使用DataGrid数据表过程中,不管是视觉感受还是用户体验上,再或者是大批量数据使用场景中,大量的单页数据用户体验很不好,于是想开发一个可以分页的控件。

思路

刚开始在网上各种搜DEMO,希望从中获取些有用的东西,好在还是从中了解到了大概的实现思路。

需求

最基础的就是分页功能咯。但是,虽然作为程序猿,我对美观一直坚持不懈的追求,所以不仅要实现,还有美观。

部分代码

        /// <summary>
        /// 显示每页记录数字符串列表
        /// 例:10,20,30
        /// </summary>
        public static readonly DependencyProperty PageSizeListProperty =
            DependencyProperty.Register("PageSizeList", typeof(string), typeof(PagingDataGrid), new UIPropertyMetadata(null, (s, e) => {
                PagingDataGrid dp = s as PagingDataGrid;
                if (dp.PageSizeItemsSource == null) {
                    dp.PageSizeItemsSource = new List<int>();
                }
                if (dp.PageSizeItemsSource != null) {
                    List<string> strs = e.NewValue.ToString().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
                    dp.PageSizeItemsSource.Clear();
                    strs.ForEach(c => {
                        dp.PageSizeItemsSource.Add(Convert.ToInt32(c));
                    });
                }
            }));



        protected IList<int> PageSizeItemsSource {
            get { return (IList<int>)GetValue(PageSizeItemsSourceProperty); }
            set { SetValue(PageSizeItemsSourceProperty, value); }
        }

        /// <summary>
        /// 显示每页记录数集合
        /// </summary>
        protected static readonly DependencyProperty PageSizeItemsSourceProperty =
            DependencyProperty.Register("PageSizeItemsSource", typeof(IList<int>), typeof(PagingDataGrid), new UIPropertyMetadata(new List<int> { 5, 10, 20, 30, 50 }));

效果图

分页控件外观

 

总结

总体实现实用性和适用性算是达标,但是原本还想做个导入导出功能,导出支持当前页和所有页,但是个人项目比较紧张,实在忙不过来,等候续吧。

DEMO下载

PagingDataGrid【MintYouth】.zip-C#文档类资源-CSDN下载博客原文:https://blog.csdn.net/weixin_38351681/article更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/weixin_38351681/50021380

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
WPF自定义DataGrid控件是通过继承现有的DataGrid类,并在其基础上进行修改和扩展来实现的。 自定义DataGrid控件的步骤如下: 1. 创建一个自定义的类,继承自DataGrid。例如,可以命名为CustomDataGrid。 2. 在CustomDataGrid类中,可以添加额外的属性、依赖属性或附加属性,用于自定义DataGrid控件的特定行为或外观。 3. 重写或扩展DataGrid的现有方法、事件和样式,以满足自定义需求。例如,可以重写OnApplyTemplate()方法以应用自定义样式。 4. 根据需要,可以添加新的功能或控件,例如自定义列、单元格、行、排序、筛选、分页等等。 5. 在CustomDataGrid类中,可以通过编写自定义的模板(Template)来修改DataGrid的外观。例如,可以通过修改DataGrid的ControlTemplate来改变整个DataGrid的显示风格。 6. 编写完自定义类后,可以在XAML中使用自定义DataGrid控件,通过添加命名空间引用并将CustomDataGrid作为一个控件使用。可以设置自定义属性、事件和样式,达到期望的效果。 通过自定义DataGrid控件,可以根据实际需求对其进行扩展和修改,以满足特定的业务需求。由于WPF提供了强大的样式、模板和继承机制,因此可以轻松地自定义DataGrid控件,并且可以实现高度的灵活性和可扩展性。这样,可以根据项目的需求和用户的喜好来创建独特的、具有个性化的DataGrid控件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MintYouth

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值