Browse Source

Merge pull request #7094 from timunie/fix/DataGridHeaderToBeStyledProperty

fix: Make DataGridColumn.Header and .HeaderTemplate a DirectProperty
release/0.10.11-rc.2
Max Katz 4 years ago
committed by Dan Walmsley
parent
commit
22bab40d6a
  1. 64
      src/Avalonia.Controls.DataGrid/DataGridColumn.cs

64
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
}
}
/// <summary>
/// Backing field for Header property
/// </summary>
public static readonly DirectProperty<DataGridColumn, object> HeaderProperty =
AvaloniaProperty.RegisterDirect<DataGridColumn, object>(
nameof(Header),
o => o.Header,
(o, v) => o.Header = v);
/// <summary>
/// Gets or sets the <see cref="DataGridColumnHeader"/> content
/// </summary>
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); }
}
/// <summary>
/// Backing field for Header property
/// </summary>
public static readonly DirectProperty<DataGridColumn, IDataTemplate> HeaderTemplateProperty =
AvaloniaProperty.RegisterDirect<DataGridColumn, IDataTemplate>(
nameof(HeaderTemplate),
o => o.HeaderTemplate,
(o, v) => o.HeaderTemplate = v);
/// <summary>
/// Gets or sets an <see cref="IDataTemplate"/> for the <see cref="Header"/>
/// </summary>
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;

Loading…
Cancel
Save