[Silverlight] 自定义 Datapager 用户控件





5.00/5 (3投票s)
如何在 Silverlight 中创建自定义 Datapager 用户控件?
引言
本技巧将帮助您在 Silverlight 中创建一个自定义数据分页器用户控件。在本技巧中,我使用 DependencyProperty
和 INotifyPropertyChanged
来改变导航按钮的效果。
背景
在本技巧中,我使用了 DependencyProperty
来改变用户控件中的值。DependencyProperty
是一个 static
方法,用于改变实例化对象属性的值。我还使用了 INotifyPropertyChanged
来改变自定义用户控件中的属性值。任何人都可以将此自定义用户控件用于他们的 Silverlight 项目。
我的 Datapager
看起来像这样

现在我创建一个类,该类指向您的数据库 List
类。在这个类中,我编写一个函数,该函数返回一个 List
记录。
然后,最终创建 MainPage.Xaml,其中包含 Datagrid
和 CustomDatapager
用户控件。
看起来像这样
<grid horizontalalignment="Left" width="300"
removed="White" x:name="LayoutRoot">
<grid.rowdefinitions>
<rowdefinition height="250" />
<rowdefinition height="Auto" />
</grid.rowdefinitions>
<sdk:datagrid horizontalalignment="Stretch" verticalalignment="
Stretch" autogeneratecolumns="True" grid.row="0"
name="grdEmployeesNew">
<my:customdatapagercontrol grid.row="1" pagesize="5"
x:name="pagerNew">
</my:customdatapagercontrol></sdk:datagrid></grid>
我的 MainPage.Xaml.cs 看起来像这样
List<employee> objEmployeeList = new List<employee>();
int pageSize = 5;
public MainPage()
{
InitializeComponent();
EmployeePageData obj = new EmployeePageData();
objEmployeeList = obj.LoadPageRecord();
pagerNew.PropertyChanged +=
new System.ComponentModel.PropertyChangedEventHandler(pagerNew_PropertyChanged);
pagerNew.CurrentPage = 1;
pagerNew.TotalRecord = objEmployeeList.Count;
}
void pagerNew_PropertyChanged
(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName == "CurrentPage")
{
int currentPage = pagerNew.CurrentPage;
grdEmployeesNew.ItemsSource = objEmployeeList.Skip
((currentPage - 1) * pageSize).Take(pageSize).ToList();
}
}
</employee></employee>
最终 Page
看起来像这样
