From 8b490152d49b1cc310faf86a2aebdc52fd5f1760 Mon Sep 17 00:00:00 2001 From: dif-sam <41672086+dif-sam@users.noreply.github.com> Date: Mon, 5 Dec 2022 23:49:13 +0400 Subject: [PATCH] Increase GenerateElement performance Use ability of the IRecyclingDataTemplate to speed up performance, when CellTemplate is an instance of DataTemplate type. --- src/Avalonia.Controls.DataGrid/DataGridTemplateColumn.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Controls.DataGrid/DataGridTemplateColumn.cs b/src/Avalonia.Controls.DataGrid/DataGridTemplateColumn.cs index 3ec78d6d6a..3649ec4308 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridTemplateColumn.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridTemplateColumn.cs @@ -64,9 +64,11 @@ namespace Avalonia.Controls protected override Control GenerateElement(DataGridCell cell, object dataItem) { - if(CellTemplate != null) + if (CellTemplate != null) { - return CellTemplate.Build(dataItem); + return (CellTemplate is IRecyclingDataTemplate recyclingDataTemplate) + ? recyclingDataTemplate.Build(dataItem, cell.Content as IControl) + : CellTemplate.Build(dataItem); } if (Design.IsDesignMode) {