<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是分页控件