using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using FWindSoft.Handle; using FWindSoft.Wpf.Controls; namespace Test.Pager { /// /// WinPager.xaml 的交互逻辑 /// public partial class WinPager : Window { /* * 例子需要整理: * PageIndex变化引起联动处理。 */ PagerFilterControl m_FilterControl = new PagerFilterControl(); public WinPager() { InitializeComponent(); InitData(); m_FilterControl.InitFilterAction = InitFilter; m_FilterControl.InitPagerAction = InitPager; m_FilterControl.UpdateData = UpdateData; m_FilterControl.FilterSetting["Name"] = string.Empty; //NavigationPager_OnPageIndexChanged(null, new PageChangedEventArgs() {CurrentPageIndex = 1}); m_FilterControl.Refresh(); } private void InitFilter(PagerFilterControl control) { Search.Text = control.FilterSetting["Name"].ToString(); } private void InitPager(PagerFilterControl control) { //属性变化,控制不刷新页面 Pager.CurrentPageIndex = control.CurrentPageIndex; } private void UpdateData(PagerFilterControl control) { if (DataSource == null) return; DataGrid.ItemsSource = null; int currentIndex = control.CurrentPageIndex; Collections = new ObservableCollection(DataSource.GetRange((currentIndex - 1) * 15, 15)); DataGrid.ItemsSource = Collections; } private List DataSource; public ObservableCollection Collections; public void InitData() { int total = 100; List persons=new List(); for (int i = 0; i < total; i++) { for (int j = 0; j < 15; j++) { persons.Add(new Person(){Name = "学生"+i.ToString()}); } } DataSource = persons; Pager.TotalPageCount = 100; Pager.CurrentPageIndex = 1; } private void NavigationPager_OnPageIndexChanged(object sender, PageChangedEventArgs e) { //if (DataSource == null) // return; //DataGrid.ItemsSource = null; //int currentIndex = e.CurrentPageIndex; //Collections=new ObservableCollection(DataSource.GetRange((currentIndex-1)*15,15)); //DataGrid.ItemsSource = Collections; //SearchTextBlock.SetSearchKey(Grid, e.CurrentPageIndex.ToString()); m_FilterControl.CurrentPageIndex=Pager.CurrentPageIndex; m_FilterControl.PageInfoChanged(); } private void BtnSearch_Click(object sender, RoutedEventArgs e) { m_FilterControl.FilterSetting["Name"] = Search.Text; m_FilterControl.FilterChanged(); } } public class Person { public string Name { get; set; } public string Age { get; set; } } }