using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; namespace NeuWPFTest { public class MainViewModel : INotifyPropertyChanged { private readonly List _fullDataSource; // 模拟的后端数据源 private IEnumerable _pagedItems; public IEnumerable PagedItems { get => _pagedItems; private set { _pagedItems = value; OnPropertyChanged(); } } private int _currentPage = 1; public int CurrentPage { get => _currentPage; set { _currentPage = value; OnPropertyChanged(); UpdatePagedItems(); } } private int _pageSize = 10; public int PageSize { get => _pageSize; set { _pageSize = value; OnPropertyChanged(); UpdatePagedItems(); } } public long TotalItems { get; private set; } public MainViewModel() { _fullDataSource = new List(Enumerable.Range(1, 1052).Select(i => $"条目 {i}")); TotalItems = _fullDataSource.Count; OnPropertyChanged(nameof(TotalItems)); UpdatePagedItems(); // 加载第一页 } private void UpdatePagedItems() { var skip = (CurrentPage - 1) * PageSize; PagedItems = _fullDataSource.Skip(skip).Take(PageSize).ToList(); } public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } }