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;