123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- 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
- {
- /// <summary>
- /// WinPager.xaml 的交互逻辑
- /// </summary>
- 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<Person>(DataSource.GetRange((currentIndex - 1) * 15, 15));
- DataGrid.ItemsSource = Collections;
- }
- private List<Person> DataSource;
- public ObservableCollection<Person> Collections;
- public void InitData()
- {
- int total = 100;
- List<Person> persons=new List<Person>();
- 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<Person>(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; }
- }
- }
|