Browse Source

Fix rowcol definitions not sync'ing with DefinitionsU/V, hence fixing bugs for the Calendar control.

pull/2563/head
Jumar Macato 7 years ago
parent
commit
fa95d9cd10
No known key found for this signature in database GPG Key ID: B19884DAC3A5BF3F
  1. 27
      src/Avalonia.Controls/GridWPF.cs

27
src/Avalonia.Controls/GridWPF.cs

@ -185,8 +185,6 @@ namespace Avalonia.Controls
{ {
get get
{ {
if (_columnDefinitions == null) if (_columnDefinitions == null)
{ {
ColumnDefinitions = new ColumnDefinitions(); ColumnDefinitions = new ColumnDefinitions();
@ -194,18 +192,8 @@ namespace Avalonia.Controls
return _columnDefinitions; return _columnDefinitions;
} }
set set
{ {
if (_columnDefinitions != null)
{
throw new NotSupportedException("Reassigning ColumnDefinitions not yet implemented.");
}
if (_data == null) { _data = new ExtendedData(); }
_columnDefinitions = value; _columnDefinitions = value;
_columnDefinitions.TrackItemPropertyChanged(_ => InvalidateMeasure()); _columnDefinitions.TrackItemPropertyChanged(_ => InvalidateMeasure());
ColumnDefinitionsDirty = true; ColumnDefinitionsDirty = true;
@ -213,7 +201,7 @@ namespace Avalonia.Controls
_columnDefinitions.CollectionChanged += (_, e) => _columnDefinitions.CollectionChanged += (_, e) =>
{ {
DefinitionsU = e.NewItems.Cast<DefinitionBase>().ToArray(); DefinitionsU = _columnDefinitions.Cast<DefinitionBase>().ToArray();
ColumnDefinitionsDirty = true; ColumnDefinitionsDirty = true;
InvalidateMeasure(); InvalidateMeasure();
}; };
@ -235,25 +223,18 @@ namespace Avalonia.Controls
return _rowDefinitions; return _rowDefinitions;
} }
set set
{ {
if (_rowDefinitions != null)
{
throw new NotSupportedException("Reassigning RowDefinitions not yet implemented.");
}
if (_data == null) { _data = new ExtendedData(); }
_rowDefinitions = value; _rowDefinitions = value;
_rowDefinitions.TrackItemPropertyChanged(_ => InvalidateMeasure()); _rowDefinitions.TrackItemPropertyChanged(_ => InvalidateMeasure());
RowDefinitionsDirty = true; RowDefinitionsDirty = true;
DefinitionsV = _rowDefinitions.Cast<DefinitionBase>().ToArray(); DefinitionsV = _rowDefinitions.Cast<DefinitionBase>().ToArray();
_rowDefinitions.CollectionChanged += (_, e) => _rowDefinitions.CollectionChanged += (_, e) =>
{ {
DefinitionsV = e.NewItems.Cast<DefinitionBase>().ToArray(); DefinitionsV = _rowDefinitions.Cast<DefinitionBase>().ToArray();
RowDefinitionsDirty = true; RowDefinitionsDirty = true;
InvalidateMeasure(); InvalidateMeasure();
}; };

Loading…
Cancel
Save