Это старый вопрос, но я хотел бы поделиться чем-то. У меня была похожая проблема, все, что мне было нужно, это простая RowHeader
нумерация строк, и ответ Фредрика Хедблада был почти полным для моей задачи.
Пока это здорово:
<DataGrid Name="DataGrid" LoadingRow="DataGrid_LoadingRow" ...
void DataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
e.Row.Header = (e.Row.GetIndex()).ToString();
}
мои заголовки испортились при удалении и добавлении элементов. Если у вас есть кнопки, отвечающие за это, просто добавьте dataGrid.Items.Refresh();
под кодом «удаления», как в моем случае:
private void removeButton_Click(object sender, RoutedEventArgs e)
{
// delete items
dataGrid.Items.Refresh();
}
Это решило для меня десинхронизированную нумерацию, потому что обновление элементов снова вызывает DataGrig_LoadingRow
.