思路:
在每個datagrid的第一列加上一個模板列,里面只定義一個textblock
之后在datagrid的行加載事件中,給每個行的textblock加上一個編號。
xaml代碼:
<sdk:DataGridTemplateColumn CanUserSort="False" Header="序號"> <sdk:DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"/> </DataTemplate> </sdk:DataGridTemplateColumn.CellTemplate> </sdk:DataGridTemplateColumn>
cs代碼:
// 加載控件值 /// <summary> /// 加載控件值 /// </summary> private void InitControl() { try { #region 控件賦值 this.OtherTechnique_Infos_Schema = null; this.tbTEXT.Text = string.Empty; this.dgList.ItemsSource = null; this.dgList.ItemsSource = this.listOtherTechnique_Infos_Schemas.OrderBy(t => t.CODE); this.dgList.LoadingRow += dataGrid_LoadingRow; #endregion 控件賦值 } catch (Exception) { throw; } } /// <summary> /// 序號 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void dataGrid_LoadingRow(object sender, DataGridRowEventArgs e) { var index = e.Row.GetIndex(); var cell = this.dgList.Columns[0].GetCellContent(e.Row) as TextBlock; if (cell != null) cell.Text = (index + 1).ToString(); }
大功告成!