在SilverLight 中,我们同样可以想.Net中那样读取数据并显示在页面上,但是,在Silverlight中,我们就不用GridView,而是使用DataGrid来实现同样的效果,好了,废话不多说,且看如何实现吧

 

1、首先来建立一个测试页面DataPager.xaml,其中代码如下:

 

 
  
  1. <navigation:Page x:Class="MySilverLight.DataPager"   
  2.            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"   
  3.            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"   
  4.            xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
  5.            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  6.                  xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"    
  7.            mc:Ignorable="d" 
  8.            xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation" 
  9.            d:DesignWidth="640" d:DesignHeight="480" 
  10.            Title="DataPager Page"> 
  11.     <Grid x:Name="LayoutRoot"> 
  12.         <StackPanel> 
  13.             <StackPanel Margin="10"> 
  14.                 <data:DataPager x:Name="dp_top" 
  15.                                 PageSize="5" 
  16.                                 IsTotalItemCountFixed="True" 
  17.                                 NumericButtonCount="10" 
  18.                                 DisplayMode="FirstLastPreviousNext" 
  19.                                 AutoEllipsis="True"> 
  20.                       
  21.                 </data:DataPager> 
  22.                 <data:DataGrid x:Name="gdv_data" 
  23.                                /> 
  24.                 <data:DataPager x:Name="dp_footer" 
  25.                             PageSize="6" NumericButtonCount="10" AutoEllipsis="True" 
  26.                             DisplayMode="FirstLastPreviousNextNumeric"   
  27.                             IsTotalItemCountFixed="True"> 
  28.                 </data:DataPager> 
  29.             </StackPanel> 
  30.         </StackPanel> 
  31.     </Grid> 
  32. </navigation:Page> 

值得注意的是:在头部需要加入xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" 

并且需要引入如下的命名空间 System.Windows.Controls和System.Windows.Controls.Data

2、接下来我们需要准备一些数据,后面会用到

先来建立一个Users.cs类,代码如下:

 

 
  
  1. namespace MySilverLight  
  2. {  
  3.     public class Users  
  4.     {  
  5.         private int _id;  
  6.         private string _name;  
  7.         private int _age;  
  8.         private string _address;  
  9.  
  10.         public int Id  
  11.         {  
  12.             get { return _id; }  
  13.             set { _id = value; }  
  14.         }  
  15.  
  16.         public string Name  
  17.         {  
  18.             get { return _name; }  
  19.             set { _name = value; }  
  20.         }  
  21.  
  22.         public int Age  
  23.         {  
  24.             get { return _age; }  
  25.             set { _age = value; }  
  26.         }  
  27.  
  28.         public string Address  
  29.         {  
  30.             get { return _address; }  
  31.             set { _address = value; }  
  32.         }  
  33.     }  
  34. }  

然后在DataPager.xaml.cs文件中写一个方法,向里面添加数据,代码如下:

 

 
  
  1. List<Users> Data()  
  2.         {  
  3.             List<Users> list = new List<Users>() {   
  4.                 new Users{Id=0001,Name="黄晓华",Age=30,Address="河南 贵州"},  
  5.                 new Users{Id=0002,Name="陈东",Age=20,Address="四川 达州"},  
  6.                 new Users{Id=0003,Name="李丽",Age=22,Address="四川 成都"},  
  7.                 new Users{Id=0004,Name="王武",Age=41,Address="四川 遂宁"},  
  8.                 new Users{Id=0005,Name="李华",Age=34,Address="四川 南充"},  
  9.                 new Users{Id=0006,Name="文琪",Age=23,Address="重庆 大川"},  
  10.                 new Users{Id=0007,Name="消炎",Age=25,Address="江西 南阳"},  
  11.                 new Users{Id=0008,Name="罗翰",Age=15,Address="四川 绵阳"},  
  12.                 new Users{Id=0009,Name="张丹",Age=23,Address="四川 广汉"},  
  13.                 new Users{Id=0010,Name="玉立",Age=26,Address="四川 内江"},  
  14.                 new Users{Id=0011,Name="蒋晓华",Age=26,Address="四川 邛崃"},  
  15.                 new Users{Id=0012,Name="郭丽",Age=76,Address="四川 广元"},  
  16.                 new Users{Id=0013,Name="韩小帅",Age=34,Address="四川 广安"},  
  17.                 new Users{Id=0014,Name="黄晓华",Age=30,Address="河南 贵州"},  
  18.                 new Users{Id=0015,Name="陈东",Age=20,Address="四川 达州"},  
  19.                 new Users{Id=0016,Name="李丽",Age=22,Address="四川 成都"},  
  20.                 new Users{Id=0017,Name="王武",Age=41,Address="四川 遂宁"},  
  21.                 new Users{Id=0018,Name="李华",Age=34,Address="四川 南充"},  
  22.                 new Users{Id=0019,Name="文琪",Age=23,Address="重庆 大川"},  
  23.                 new Users{Id=0020,Name="消炎",Age=25,Address="江西 南阳"},  
  24.                 new Users{Id=0021,Name="罗翰",Age=15,Address="四川 绵阳"},  
  25.                 new Users{Id=0022,Name="张丹",Age=23,Address="四川 广汉"},  
  26.                 new Users{Id=0023,Name="玉立",Age=26,Address="四川 内江"},  
  27.                 new Users{Id=0024,Name="蒋晓华",Age=26,Address="四川 邛崃"},  
  28.                 new Users{Id=0025,Name="郭丽",Age=76,Address="四川 广元"},  
  29.                 new Users{Id=0026,Name="韩小帅",Age=34,Address="四川 广安"},  
  30.                 new Users{Id=0027,Name="黄晓华",Age=30,Address="河南 贵州"},  
  31.                 new Users{Id=0028,Name="陈东",Age=20,Address="四川 达州"},  
  32.                 new Users{Id=0029,Name="李丽",Age=22,Address="四川 成都"},  
  33.                 new Users{Id=0030,Name="王武",Age=41,Address="四川 遂宁"},  
  34.                 new Users{Id=0031,Name="李华",Age=34,Address="四川 南充"},  
  35.                 new Users{Id=0032,Name="文琪",Age=23,Address="重庆 大川"},  
  36.                 new Users{Id=0033,Name="消炎",Age=25,Address="江西 南阳"},  
  37.                 new Users{Id=0034,Name="罗翰",Age=15,Address="四川 绵阳"},  
  38.                 new Users{Id=0035,Name="张丹",Age=23,Address="四川 广汉"},  
  39.                 new Users{Id=0036,Name="玉立",Age=26,Address="四川 内江"},  
  40.                 new Users{Id=0037,Name="蒋晓华",Age=26,Address="四川 邛崃"},  
  41.                 new Users{Id=0038,Name="郭丽",Age=76,Address="四川 广元"},  
  42.                 new Users{Id=0039,Name="韩小帅",Age=34,Address="四川 广安"}  
  43.             };  
  44.  
  45.               
  46.             return list;  
  47.         } 

3、最后,我们来写绑定数据的代码:

 

 
  
  1. public DataPager()  
  2.         {  
  3.             InitializeComponent();  
  4.             this.Loaded += new RoutedEventHandler(DataPager_Loaded);  
  5.         }  
  6.  
  7.         void DataPager_Loaded(object sender, RoutedEventArgs e)  
  8.         {  
  9.             List<Users> listData();  
  10.  
  11.             //绑定数据  
  12.             PagedCollectionView view = new PagedCollectionView(list);  
  13.             gdv_data.ItemsSource = view;  
  14.             dp_top.Source = view;  
  15.             dp_footer.Source = view;  
  16.         } 

其中PagedCollectionView 需要引用System.Windows.Data命名空间,运行后的效果如下: