<c1:C1DataGrid Name="grid1" HeadersVisibility="Column" Height="Auto" Width="Auto"   GridLinesVisibility="All" ColumnWidth="*" AutoGenerateColumns="False"  CanUserGroup="False" CanUserAddRows="False" ItemsSource="{Binding}" Margin="5">
      <c1:C1DataGrid.Columns>
            <c1:DataGridTemplateColumn Header="Guid" Width="40">
                <c1:DataGridTemplateColumn.CellTemplate>
                      <DataTemplate>
                          <TextBlock Name="tbEID" Text="{Binding Guid}" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
                       </DataTemplate>
                </c1:DataGridTemplateColumn.CellTemplate>
            </c1:DataGridTemplateColumn>
            <c1:DataGridTextColumn  Header="Name" Binding="{Binding Name}" Width="2*" />
      </c1:C1DataGrid.Columns>
  </c1:C1DataGrid>
 <c1:C1DataPager x:Name="_dataPager1" PageSize="6" Margin="5" Source="{Binding ItemsSource, ElementName=grid1}" />
            

如上所示是表格控件C1DataGrid和分页控件C1DataPager,

一:分页

Source="{Binding ItemsSource, ElementName=grid1}"只需要在前台分页控件中给Source属性赋值,然后再后台grid1.ItemsSource=new PagedCollectionView(obs);obs是数据的集合,即可实现分页功能

二:根据绑定的字段“Guid”实现排序,

1、先用集合获取要绑定的数据 ObservableCollection<classes> obs = new ObservableCollection<classes>();,此处要引用System.xml;System.xml.Linq两个命名空间。

2、用对象view 封装obs数据集合 PagedCollectionView view = new PagedCollectionView(obs);  PagedCollectionView需要引用System.Windows.Data

3、实现排序 此处的Name是绑定的字段,

System.ComponentModel.SortDescription Sort =
new System.ComponentModel.SortDescription("Name", System.ComponentModel.ListSortDirection.Descending);

然后把Sort添加到view的排序规则中  view.SortDescriptions.Add(Sort);

4、最后把view赋值给表格控件grid1.ItemsSource = view;即可实现排序功能

三、给表格增加一个自动增长的列

紧接着上面的代码实现表格的LoadingRow事件

grid1.LoadingRow += new EventHandler<DataGridRowEventArgs>(grid1_LoadingRow);

        void grid1_LoadingRow(object sender, DataGridRowEventArgs e)
        {
            int index = e.Row.Index;
            MonitorPointInfo mpInfo = grid1.Rows[index].DataItem as MonitorPointInfo;
            mpInfo.EID = (_dataPager1.PageSize * _dataPager1.PageIndex + (index + 1)).ToString();
        }
“MonitorPointInfo”是绑定表格数据的实体类,_dataPager1是分页控件
posted on 2013-01-07 14:11  非“程”勿扰  阅读(775)  评论(0编辑  收藏  举报