Так как я не могу найти это решение на SO, я напишу мое здесь.
Вам нужно найти СОБЫТИЕ, которое приводит к тому, что ваша строка имеет неправильный размер. В моем случае это просто прокрутка вверх и вниз (но я видел это на нескольких различных типах событий). Вот код для изменения размера таблицы данных:
/// <summary>
/// Reset datagrid row height
/// </summary>
/// <param name="row"></param>
public void ResetRowHeight(DataGrid grid, DataGridRow row)
{
// only for autosize rows
if (!double.IsNaN(row.Height)) return;
// store current rowheight
double rowheight = grid.RowHeight;
// fore recalculating row height
grid.RowHeight = 0;
row.UpdateLayout();
// restore rowheight
grid.RowHeight = rowheight;
row.UpdateLayout();
}
Где grid - это ваша сетка данных, а row - строка, которая нуждается в сбросе.
Теперь просто найдите событие, которое вызывает вашу проблему, и это должно быть.