2 Stimmen

Ändern der Zellenhöhe einer Silverlight Datengitterzeile?

Ich konnte herausfinden, wie man eine Spalte der Datentabelle mit der Maus erweitern und zusammenziehen kann. Aber nach dem Zusammenziehen und Erweitern einer Spalte, die Höhe der Zelle nicht verringern.

Wie kann ich die ursprüngliche Höhe einer Zelle (oder Zeile) wiederherstellen? Können Sie sich das ansehen?

Danke AJ

0voto

DanTheMan Punkte 3247

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X