首先在datagrid中添加DataGridTemplateColumn,如下:
<DataGridTemplateColumn Width="60" Header="序号" IsReadOnly="True"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock HorizontalAlignment="Center" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGridRow}}, Path=Header}" /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn>
然后后台增加一个事件:
private void DgSceneRecord_LoadingRow(object sender, DataGridRowEventArgs e) { e.Row.Header = e.Row.GetIndex() + 1; }
但是得出的界面却是这样子的
这是因为datagrid的【LoadingRow】方法的存在,若这个方法去掉,则序号也不显示了。
所以如果在datagrid中加上一个属性【HeadersVisibility="Column" 】,结果就完美出现了。