WPF分页写法(MVVM实现)

本文介绍了如何在WPF中使用MVVM模式实现分页功能。通过创建一个基类实现双向数据绑定,然后建立SSviewModel并继承PropertyChangedBase。在MVVM逻辑中,当页码变化时,利用委托通知后台更新数据,避免跨页面调用。最终实现了在WPF应用中的分页效果。
摘要由CSDN通过智能技术生成

TODO:萌新劝退,以下正文(举例,具体参照代码)

  1. 新建一个基类,实现双向通知(绑定)
  2. public class PropertyChangedBase : INotifyPropertyChanged
        {
            public event PropertyChangedEventHandler PropertyChanged;
            protected void NotifyPropertyChanged([CallerMemberName]string propertyName = null)
            {
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
            }
            protected bool SetProperty<T>(ref T backingStore, T value, [CallerMemberName]string propertyName = "", Action onChanged = null)
            {
                if (EqualityComparer<T>.Default.Equals(backingStore, value))
                    return false;
    
                backingStore = value;
                onChanged?.Invoke();
                NotifyPropertyChanged(propertyName);
                return true;
            }
        }

     

  3. 建立SSviewModel继承PropertyChangedBase
  4. public class SSViewModel : PropertyChangedBase
    {
            /// <summary>
            /// 历史数据列表(选中的设备)
            /// </summary>
            public ObservableCollection<CheckHisData> CheckHisDataList { get; set; }
    
            private int selectHisCurrentIndex;
            /// <summary>
            /// 页码变更事件
            /// </summary>
            public int SelectHisCurrentIndex
            {
                get => selectHisCurrentIndex; set => SetProperty(ref selectHisCurrentIndex, value, "", () =>
                {
                    GetHisData(SelectHisStartTime, SelectHisEndTime, selectHisCurrentIndex, SelectHisInterval, SelectHisStandard);
                });
            }
            
            /// <summary>
            /// 获取历史数据函数
            /// 委托(将函数委托) 以方便在SSviewModel中调用
            /// </summary>
            public Action<DateTime, DateTime, int, int, bool> GetHisData { get; set; }
    }
    

    TODO:逻辑实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值