Da ich diese Lösung auf SO nicht finden kann, werde ich meine hier eintippen.
Sie müssen ein EREIGNIS finden, das dazu führt, dass Ihre Zeile die falsche Größe hat. In meinem Fall war es nur das Hoch- und Runterscrollen (aber ich habe das bei verschiedenen Arten von Ereignissen gesehen). Hier ist der Code, um die Größe der Datentabelle zu ändern:
/// <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();
}
Dabei ist grid Ihre Datentabelle und row die Zeile, die zurückgesetzt werden muss.
Jetzt müssen Sie nur noch das Ereignis finden, das Ihr Problem verursacht, und das sollte alles sein.