WPF下给DataGrid自动增加序列号

C#下使用WPF框架编程时,有时需要给DataGrid添加序号,实现方式一般两种,一种方式是通过 LoadingRow,自动在列前边增加一列序号,该列为自动添加,没有列名字。另一种是自定义一列显示序号。下边我们看看具体的实现方式。
1、自动增加一列显示序号
效果如图:

 

 

实现方式:
给DataGrid添加LoadingRow事件
this.dataGridEquipment.LoadingRow += new EventHandler<DataGridRowEventArgs>(this.dataGridEquipment_LoadingRow);

LoadingRow实现

private void dataGridEquipment_LoadingRow(object sender, DataGridRowEventArgs e)
{
e.Row.Header = e.Row.GetIndex() + 1;
}
2、自定义一列显示序号
效果如下:

 

 


实现方式:
利用DataGridTemplateColumn自定义列:

<DataGridTemplateColumn Width="55" Header="序号" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow}}, Path=Header}" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"></TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

给DataGrid添加LoadingRow事件
this.dataGridEquipment.LoadingRow += new EventHandler<DataGridRowEventArgs>(this.dataGridEquipment_LoadingRow);

LoadingRow实现
private void dataGridEquipment_LoadingRow(object sender, DataGridRowEventArgs e)
{
e.Row.Header = e.Row.GetIndex() + 1;
}

最后设置DataGrid的 HeadersVisibility ="Column"或者 RowHeaderWidth ="0"。

posted @ 2022-05-02 15:16  honeys  阅读(1032)  评论(0编辑  收藏  举报