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; }
}
}