using System.Collections.Generic; using System.Linq; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using HandyControl.Data; using HandyControlDemo.Data; using HandyControlDemo.Service; namespace HandyControlDemo.ViewModel { public class PaginationDemoViewModel : ViewModelBase { /// /// 所有数据 /// private readonly List _totalDataList; /// /// 显示的数据 /// private List _dataList; /// /// 显示的数据 /// public List DataList { get => _dataList; set => Set(nameof(DataList), ref _dataList, value); } /// /// 页码 /// private int _pageIndex = 1; /// /// 页码 /// public int PageIndex { get => _pageIndex; set => Set(nameof(PageIndex), ref _pageIndex, value); } public PaginationDemoViewModel(DataService dataService) { _totalDataList = dataService.GetDemoDataList(100); DataList = _totalDataList.Take(10).ToList(); } private RelayCommand> _pageUpdatedCmd; /// /// 页码改变命令 /// public RelayCommand> PageUpdatedCmd => _pageUpdatedCmd ?? (_pageUpdatedCmd = new RelayCommand>(PageUpdated)); /// /// 页码改变 /// private void PageUpdated(FunctionEventArgs info) { DataList = _totalDataList.Skip((info.Info - 1) * 10).Take(10).ToList(); } } }