Skip to content

Commit a7e4796

Browse files
committed
Fix invalid column sizes after assigning new source.
Don't call `UpdateColumnSizes` when the viewport changes if no measure pass has been carried out yet.
1 parent 356db00 commit a7e4796

File tree

1 file changed

+4
-1
lines changed
  • src/Avalonia.Controls.TreeDataGrid/Models/TreeDataGrid

1 file changed

+4
-1
lines changed

src/Avalonia.Controls.TreeDataGrid/Models/TreeDataGrid/ColumnList.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ namespace Avalonia.Controls.Models.TreeDataGrid
99
/// </summary>
1010
public class ColumnList<TModel> : NotifyingListBase<IColumn<TModel>>, IColumns
1111
{
12+
private bool _initialized;
1213
private double _viewportWidth;
1314

1415
public event EventHandler? LayoutInvalidated;
@@ -22,6 +23,7 @@ public void AddRange(IEnumerable<IColumn<TModel>> items)
2223
public Size CellMeasured(int columnIndex, int rowIndex, Size size)
2324
{
2425
var column = (IUpdateColumnLayout)this[columnIndex];
26+
_initialized = true;
2527
return new Size(column.CellMeasured(size.Width, rowIndex), size.Height);
2628
}
2729

@@ -103,7 +105,8 @@ public void ViewportChanged(Rect viewport)
103105
if (_viewportWidth != viewport.Width)
104106
{
105107
_viewportWidth = viewport.Width;
106-
UpdateColumnSizes();
108+
if (_initialized)
109+
UpdateColumnSizes();
107110
}
108111
}
109112

0 commit comments

Comments
 (0)