Feedback

C# - Automatische Anpassung der Breite von GridViewColumns

Veröffentlicht von am 27.11.2009
(2 Bewertungen)
Die GridView die bei WPF mitgeliefert wird hat den meist unschönen Nebeneffekt, dass die Breite der Spalten zwar beim Hinzufügen des ersten Elementes automatisch angepasst wird, werden jedoch nachträglich weitere Einträge hinzugefügt, werden die Spaltenbreiten nicht mehr aktualisiert. Dies kann manchmal für den User der Anwendung sehr lästig sein.

Hier hab ich den mir einzigsten bekannten Workaround gepostet, etwas unschön aber er funktioniert. Beim Zuweisen von double.NaN an column.Width berechnet GridView automatisch die richtige Spaltenbreite. Ist column.Width allerdings schon auf double.NaN, wird der Wert nicht neu berechnet, weswegen zuerst auf column.AcutalWidth gesetzt wird und dann zurück.

Das Ganze sollte nach jeder Änderung der ItemsSource von der ListView aufgerufen werden, oder nur dann, wenn es wirklich erforderlich erscheint.
GFU-Schulungen  [Anzeige]

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

Visual Studio Team Foundation Server 2017/2015 (TFS) für Administratoren - Kompakt

Nach dieser Schulung beherrschen Sie die Grundlagen des TFS. Sie erledigen administrative Aufgaben schnell und sicher.

private void UpdateListViewColumns(ListView listView)
{
    GridView gridView = listView.View as GridView;

    if (gridView != null)
        foreach (GridViewColumn column in gridView.Columns)
        {
            column.Width = column.ActualWidth;
            column.Width = double.NaN;
        }
}
Abgelegt unter ListView, GridView, GridViewColumn, Width, WPF.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!