使用Silverlight Toolkit的数据分页控件---DataPager

本文介绍Silverlight Toolkit 3.0中的DataPager控件,提供多种显示样式,如FirstLastNumeric等,并通过实例展示了如何进行数据分页绑定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      在Silverlight Toolkit 3.0中提供了强大灵活的数据分页控件:DataPager。并且其还有多种显示样式 (DisplayMode) 供使用。终于可以不用再自己费神巴力去实现分页功能了,下面是其演示效果:

           

       接着介绍一下其使用方法。

   首先,我们要新建一个Silverlight应用,并添加对下面DLL的引用:

     System.Windows.Data(其提供了PagedCollectionView类用于实现分页绑定)
  
  System.Windows.Controls.Data(分页器控件DataPager所在DLL)

  
   XAML文件头部名空间声明:

xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"

  
  然后我们要在当前XAML中放置一个DataGrid用于显示列表数据,声明如下:

< data:DataGrid  x:Name ="MyDataGrid"  Grid.Column ="0"  Grid.Row ="0"  ItemsSource =" {Binding} "   />

  
  为了演示不同显示样式(DisplayMode)的效果,下面根据其样式分别加以声明:

< data:DataPager  x:Name  ="FirstLastNumeric"  Grid.Row ="2"  DisplayMode ="FirstLastNumeric"  Margin ="0,0,0,4"  
                HorizontalAlignment
="Left"  Source =" {Binding} "  NumericButtonCount ="3"  AutoEllipsis ="True" />

< data:DataPager  x:Name  ="FirstLastPreviousNext"  Grid.Column ="0"  Grid.Row ="3"  DisplayMode ="FirstLastPreviousNext"  
                Margin
="0,0,0,4"  HorizontalAlignment ="Left"  Source =" {Binding} "  NumericButtonCount ="3"  AutoEllipsis ="True" />

< data:DataPager  x:Name  ="FirstLastPreviousNextNumeric"  Grid.Column ="0"  Grid.Row ="4"  DisplayMode ="FirstLastPreviousNextNumeric"  
                Margin
="0,0,0,4"  HorizontalAlignment ="Left"  Source =" {Binding} "  NumericButtonCount ="4"  AutoEllipsis ="True" />

< data:DataPager  x:Name  ="Numeric"  Grid.Column ="0"  Grid.Row ="5"  DisplayMode ="Numeric"  HorizontalAlignment ="Left"  
                Margin
="0,0,0,4"   Source =" {Binding} "  NumericButtonCount ="6"  AutoEllipsis ="False" />

< data:DataPager  x:Name  ="PreviousNext"  Grid.Column ="0"  Grid.Row ="6"  DisplayMode ="PreviousNext"  Margin ="0,0,0,4"  
                HorizontalAlignment
="Left"  Source =" {Binding} "  NumericButtonCount ="3"  AutoEllipsis ="False"   />

< data:DataPager  x:Name  ="PreviousNextNumeric"  Grid.Column ="0"  Grid.Row ="7"  DisplayMode ="PreviousNextNumeric"  Margin ="0,0,0,4"  
                HorizontalAlignment
="Left"  Source =" {Binding} "  NumericButtonCount ="4"  AutoEllipsis ="False"   />

   
      好了,为了便于演示,我“硬编码”了一个数据对象集合如下:

public  List < EmployeeInfo >  GetEmployeeList()
 {
     List
< EmployeeInfo >  employeeList  =   new  List < EmployeeInfo > ();
     employeeList.Add(
new  EmployeeInfo { EmployeeID  =   1 , EmployeeName  =   " 大林 " , Salary  =   1000 , City  =   " 合肥 "  });
     employeeList.Add(
new  EmployeeInfo { EmployeeID  =   2 , EmployeeName  =   " 小林 " , Salary  =   1000 , City  =   " 合肥 "  });
     employeeList.Add(
new  EmployeeInfo { EmployeeID  =   3 , EmployeeName  =   " 张三 " , Salary  =   1000 , City  =   " 合肥 "  });
     employeeList.Add(
new  EmployeeInfo { EmployeeID  =   4 , EmployeeName  =   " 李四 " , Salary  =   1500 , City  =   " 天津 "  });
     employeeList.Add(
new  EmployeeInfo { EmployeeID  =   5 , EmployeeName  =   " 王五 " , Salary  =   2000 , City  =   " 上海 "  });
     employeeList.Add(
new  EmployeeInfo { EmployeeID  =   6 , EmployeeName  =   " 赵六 " , Salary  =   - 800 , City  =   " 北京 "  });
     employeeList.Add(
new  EmployeeInfo { EmployeeID  =   7 , EmployeeName  =   " 尤七 " , Salary  =   2100 , City  =   " 武汉 "  });
     employeeList.Add(
new  EmployeeInfo { EmployeeID  =   8 , EmployeeName  =   " 马八 " , Salary  =   2300 , City  =   " 海口 "  });
     employeeList.Add(
new  EmployeeInfo { EmployeeID  =   9 , EmployeeName  =   " 许九 " , Salary  =   2300 , City  =   " 海口 "  });
     employeeList.Add(
new  EmployeeInfo { EmployeeID  =   10 , EmployeeName  =   " 代十 " , Salary  =   2300 , City  =   " 海口 "  });
     
return  employeeList;
 }

 
public   class  EmployeeInfo
 {
     
public   int  EmployeeID {  set get ; }
     
public   string  EmployeeName {  set get ; }
     
public   int  Salary {  set get ; }
     
public   int [] Cost {  get set ; }
     
public   string  City {  set get ; }
 }

             
       接下来就是如何实现分页,以及相关控件的数据绑定了,代码位于MyDataPager.xaml.cs(详见注释):   

using  System.Windows.Data;


public  MyDataPager()
{
    InitializeComponent();
    PagedCollectionView pcv 
=   new  PagedCollectionView(GetEmployeeList());
    pcv.PageSize 
=   3 ; // 一页显示三条记录

    
// 列表控件数据源绑定
    MyDataGrid.DataContext  =  pcv; 
    MyListBox.DataContext 
=  pcv;

    
// 分页控件数据源绑定
    FirstLastNumeric.DataContext  =  pcv;
    FirstLastPreviousNext.DataContext 
=  pcv;
    FirstLastPreviousNextNumeric.DataContext 
=  pcv;
    Numeric.DataContext 
=  pcv;
    PreviousNext.DataContext 
=  pcv;
    PreviousNextNumeric.DataContext 
=  pcv;
}

   
      是不是很好用,呵呵。当然该控件还提供了NumericButtonCount属性用于控制页码的数量,这在上面的XAML控件声明时已使用,大家可以修改测试一下效果。

  好的,今天的内容就先到这里了。
 
      源码下载:http://files.cnblogs.com/daizhj/Silverlight_ToolKit3.rar
 
      原文链接:http://www.cnblogs.com/daizhj/archive/2009/07/23/1529331.html

      作者: daizhj, 代震军

      Tags: silverlight,DataPager,分页

      网址: http://daizhj.cnblogs.com/

内容概要:本文针对国内加密货币市场预测研究较少的现状,采用BP神经网络构建了CCi30指数预测模型。研究选取2018年3月1日至2019年3月26日共391天的数据作为样本,通过“试凑法”确定最优隐结点数目,建立三层BP神经网络模型对CCi30指数收盘价进行预测。论文详细介绍了数据预处理、模型构建、训练及评估过程,包括数据归一化、特征工程、模型架构设计(如输入层、隐藏层、输出层)、模型编译与训练、模型评估(如RMSE、MAE计算)以及结果可视化。研究表明,该模型在短期内能较准确地预测指数变化趋势。此外,文章还讨论了隐层节点数的优化方法及其对预测性能的影响,并提出了若干改进建议,如引入更多技术指标、优化模型架构、尝试其他时序模型等。 适合人群:对加密货币市场预测感兴趣的研究人员、投资者及具备一定编程基础的数据分析师。 使用场景及目标:①为加密货币市场投资者提供一种新的预测工具和方法;②帮助研究人员理解BP神经网络在时间序列预测中的应用;③为后续研究提供改进方向,如数据增强、模型优化、特征工程等。 其他说明:尽管该模型在短期内表现出良好的预测性能,但仍存在一定局限性,如样本量较小、未考虑外部因素影响等。因此,在实际应用中需谨慎对待模型预测结果,并结合其他分析工具共同决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值