From 22bab40d6a33d20d83c0c9912056798aaecc6ca5 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Tue, 7 Dec 2021 08:19:15 -0500 Subject: [PATCH] Merge pull request #7094 from timunie/fix/DataGridHeaderToBeStyledProperty fix: Make DataGridColumn.Header and .HeaderTemplate a DirectProperty --- .../DataGridColumn.cs | 64 +++++++++---------- 1 file changed, 30 insertions(+), 34 deletions(-) diff --git a/src/Avalonia.Controls.DataGrid/DataGridColumn.cs b/src/Avalonia.Controls.DataGrid/DataGridColumn.cs index 4c4bc4f53b..6b515503aa 100644 --- a/src/Avalonia.Controls.DataGrid/DataGridColumn.cs +++ b/src/Avalonia.Controls.DataGrid/DataGridColumn.cs @@ -1,4 +1,4 @@ -// (c) Copyright Microsoft Corporation. +// (c) Copyright Microsoft Corporation. // This source is subject to the Microsoft Public License (Ms-PL). // Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details. // All other rights reserved. @@ -400,45 +400,40 @@ namespace Avalonia.Controls } } + /// + /// Backing field for Header property + /// + public static readonly DirectProperty HeaderProperty = + AvaloniaProperty.RegisterDirect( + nameof(Header), + o => o.Header, + (o, v) => o.Header = v); + + /// + /// Gets or sets the content + /// public object Header { - get - { - return _header; - } - set - { - if (_header != value) - { - _header = value; - if (_headerCell != null) - { - _headerCell.Content = value; - } - } - } + get { return _header; } + set { SetAndRaise(HeaderProperty, ref _header, value); } } + + /// + /// Backing field for Header property + /// + public static readonly DirectProperty HeaderTemplateProperty = + AvaloniaProperty.RegisterDirect( + nameof(HeaderTemplate), + o => o.HeaderTemplate, + (o, v) => o.HeaderTemplate = v); /// /// Gets or sets an for the /// public IDataTemplate HeaderTemplate { - get - { - return _headerTemplate; - } - set - { - if (_headerTemplate != value) - { - _headerTemplate = value; - if (_headerCell != null) - { - _headerCell.ContentTemplate = value; - } - } - } + get { return _headerTemplate; } + set { SetAndRaise(HeaderTemplateProperty, ref _headerTemplate, value); } } public bool IsAutoGenerated @@ -874,10 +869,11 @@ namespace Avalonia.Controls { var result = new DataGridColumnHeader { - OwningColumn = this, - Content = _header, - ContentTemplate = _headerTemplate + OwningColumn = this }; + result[!ContentControl.ContentProperty] = this[!HeaderProperty]; + result[!ContentControl.ContentTemplateProperty] = this[!HeaderTemplateProperty]; + //result.EnsureStyle(null); return result;