diff --git a/src/Avalonia.Controls.TreeDataGrid/Models/TreeDataGrid/TextCell.cs b/src/Avalonia.Controls.TreeDataGrid/Models/TreeDataGrid/TextCell.cs index 18afebe8..b1881d23 100644 --- a/src/Avalonia.Controls.TreeDataGrid/Models/TreeDataGrid/TextCell.cs +++ b/src/Avalonia.Controls.TreeDataGrid/Models/TreeDataGrid/TextCell.cs @@ -92,8 +92,8 @@ public void BeginEdit() { if (!_isEditing && !IsReadOnly) { - _isEditing = true; _editText = Text; + _isEditing = true; } } @@ -103,6 +103,7 @@ public void CancelEdit() { _isEditing = false; _editText = null; + RaisePropertyChanged(nameof(Value)); } } @@ -114,6 +115,7 @@ public void EndEdit() _isEditing = false; _editText = null; Text = text; + RaisePropertyChanged(nameof(Value)); } } diff --git a/src/Avalonia.Controls.TreeDataGrid/Primitives/TreeDataGridTemplateCell.cs b/src/Avalonia.Controls.TreeDataGrid/Primitives/TreeDataGridTemplateCell.cs index fb9d07c8..6843889b 100644 --- a/src/Avalonia.Controls.TreeDataGrid/Primitives/TreeDataGridTemplateCell.cs +++ b/src/Avalonia.Controls.TreeDataGrid/Primitives/TreeDataGridTemplateCell.cs @@ -104,6 +104,13 @@ protected override void OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs e } } + protected override void OnDetachedFromLogicalTree(LogicalTreeAttachmentEventArgs e) + { + base.OnDetachedFromLogicalTree(e); + ContentTemplate = null; + EditingTemplate = null; + } + protected override void OnDataContextChanged(EventArgs e) { base.OnDataContextChanged(e); @@ -121,6 +128,11 @@ protected override void OnDataContextChanged(EventArgs e) ContentTemplate = cell.GetCellTemplate(this); EditingTemplate = cell.GetCellEditingTemplate?.Invoke(this); } + else + { + ContentTemplate = null; + EditingTemplate = null; + } } else {