Browse Source

Handle IsReadOnly correct for DataGridTemplateColumn

pull/7315/head
Tim U 5 years ago
parent
commit
66a02a37d0
  1. 2
      src/Avalonia.Controls.DataGrid/DataGridColumn.cs
  2. 25
      src/Avalonia.Controls.DataGrid/DataGridTemplateColumn.cs

2
src/Avalonia.Controls.DataGrid/DataGridColumn.cs

@ -448,7 +448,7 @@ namespace Avalonia.Controls
internal set;
}
public bool IsReadOnly
public virtual bool IsReadOnly
{
get
{

25
src/Avalonia.Controls.DataGrid/DataGridTemplateColumn.cs

@ -15,7 +15,7 @@ namespace Avalonia.Controls
{
public class DataGridTemplateColumn : DataGridColumn
{
IDataTemplate _cellTemplate;
private IDataTemplate _cellTemplate;
public static readonly DirectProperty<DataGridTemplateColumn, IDataTemplate> CellTemplateProperty =
AvaloniaProperty.RegisterDirect<DataGridTemplateColumn, IDataTemplate>(
@ -54,7 +54,7 @@ namespace Avalonia.Controls
{
// IsReadOnly = true;
}
protected override IControl GenerateElement(DataGridCell cell, object dataItem)
{
if(CellTemplate != null)
@ -78,6 +78,10 @@ namespace Avalonia.Controls
{
return CellEditingTemplate.Build(dataItem);
}
else if (CellTemplate != null)
{
return CellTemplate.Build(dataItem);
}
if (Design.IsDesignMode)
{
return null;
@ -103,5 +107,22 @@ namespace Avalonia.Controls
base.RefreshCellContent(element, propertyName);
}
public override bool IsReadOnly
{
get
{
if (CellEditingTemplate is null)
{
return true;
}
return base.IsReadOnly;
}
set
{
base.IsReadOnly = value;
}
}
}
}

Loading…
Cancel
Save