From 3320605c61a3e47472899c09be3dcc0a91f67444 Mon Sep 17 00:00:00 2001 From: sdoroff Date: Tue, 16 Oct 2018 15:12:24 -0400 Subject: [PATCH] Implemented RefreshCellContent on DataGridTemplateColumn --- src/Avalonia.DataGrid/DataGridColumns.cs | 2 +- src/Avalonia.DataGrid/DataGridTemplateColumn.cs | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.DataGrid/DataGridColumns.cs b/src/Avalonia.DataGrid/DataGridColumns.cs index 40b50e26e5..9d36a784dc 100644 --- a/src/Avalonia.DataGrid/DataGridColumns.cs +++ b/src/Avalonia.DataGrid/DataGridColumns.cs @@ -1440,7 +1440,7 @@ namespace Avalonia.Controls DataGridCell dataGridCell = dataGridRow.Cells[dataGridColumn.Index]; Debug.Assert(dataGridCell != null); - if (dataGridCell.Content is Control element) + if (dataGridCell.Content is IControl element) { dataGridColumn.RefreshCellContent(element, propertyName); } diff --git a/src/Avalonia.DataGrid/DataGridTemplateColumn.cs b/src/Avalonia.DataGrid/DataGridTemplateColumn.cs index c0f452af94..279d9e0c52 100644 --- a/src/Avalonia.DataGrid/DataGridTemplateColumn.cs +++ b/src/Avalonia.DataGrid/DataGridTemplateColumn.cs @@ -65,5 +65,15 @@ namespace Avalonia.Controls { return null; } + + protected internal override void RefreshCellContent(IControl element, string propertyName) + { + if(propertyName == nameof(CellTemplate) && element.Parent is DataGridCell cell) + { + cell.Content = GenerateElement(cell, cell.DataContext); + } + + base.RefreshCellContent(element, propertyName); + } } }