///
/// Clear a sort criteria by assigning SortDescription.Empty to this property.
- /// One or more sort criteria in form of
+ /// One or more sort criteria in form of
/// can be used, each specifying a property and direction to sort by.
///
///
@@ -4312,4 +4312,4 @@ namespace Avalonia.Collections
}
}
}
-}
\ No newline at end of file
+}
diff --git a/src/Avalonia.Controls.DataGrid/DataGridBoundColumn.cs b/src/Avalonia.Controls.DataGrid/DataGridBoundColumn.cs
index d213285aff..09c3d07a41 100644
--- a/src/Avalonia.Controls.DataGrid/DataGridBoundColumn.cs
+++ b/src/Avalonia.Controls.DataGrid/DataGridBoundColumn.cs
@@ -26,6 +26,7 @@ namespace Avalonia.Controls
/// Gets or sets the binding that associates the column with a property in the data source.
///
//TODO Binding
+ [AssignBinding]
public virtual IBinding Binding
{
get
diff --git a/src/Avalonia.Controls.DataGrid/DataGridRow.cs b/src/Avalonia.Controls.DataGrid/DataGridRow.cs
index 8bc76543ba..04a1575486 100644
--- a/src/Avalonia.Controls.DataGrid/DataGridRow.cs
+++ b/src/Avalonia.Controls.DataGrid/DataGridRow.cs
@@ -881,10 +881,10 @@ namespace Avalonia.Controls
&& (double.IsNaN(_detailsContent.Height))
&& (AreDetailsVisible)
&& (!double.IsNaN(_detailsDesiredHeight))
- && !DoubleUtil.AreClose(_detailsContent.Bounds.Height, _detailsDesiredHeight)
+ && !DoubleUtil.AreClose(_detailsContent.Bounds.Inflate(_detailsContent.Margin).Height, _detailsDesiredHeight)
&& Slot != -1)
{
- _detailsDesiredHeight = _detailsContent.Bounds.Height;
+ _detailsDesiredHeight = _detailsContent.Bounds.Inflate(_detailsContent.Margin).Height;
if (true)
{
@@ -943,6 +943,16 @@ namespace Avalonia.Controls
_previousDetailsHeight = newValue.Height;
}
}
+ private void DetailsContent_BoundsChanged(Rect newValue)
+ {
+ if(_detailsContent != null)
+ DetailsContent_SizeChanged(newValue.Inflate(_detailsContent.Margin));
+ }
+ private void DetailsContent_MarginChanged(Thickness newValue)
+ {
+ if (_detailsContent != null)
+ DetailsContent_SizeChanged(_detailsContent.Bounds.Inflate(newValue));
+ }
//TODO Animation
// Sets AreDetailsVisible on the row and animates if necessary
@@ -997,7 +1007,7 @@ namespace Avalonia.Controls
}
}
}
-
+
internal void ApplyDetailsTemplate(bool initializeDetailsPreferredHeight)
{
if (_detailsElement != null && AreDetailsVisible)
@@ -1023,8 +1033,11 @@ namespace Avalonia.Controls
if (_detailsContent != null)
{
_detailsContentSizeSubscription =
- _detailsContent.GetObservable(BoundsProperty)
- .Subscribe(DetailsContent_SizeChanged);
+ System.Reactive.Disposables.StableCompositeDisposable.Create(
+ _detailsContent.GetObservable(BoundsProperty)
+ .Subscribe(DetailsContent_BoundsChanged),
+ _detailsContent.GetObservable(MarginProperty)
+ .Subscribe(DetailsContent_MarginChanged));
_detailsElement.Children.Add(_detailsContent);
}
}
@@ -1053,4 +1066,4 @@ namespace Avalonia.Controls
//TODO Styles
-}
\ No newline at end of file
+}
diff --git a/src/Avalonia.Controls.DataGrid/Properties/AssemblyInfo.cs b/src/Avalonia.Controls.DataGrid/Properties/AssemblyInfo.cs
index d5ad4c75f8..f15442addf 100644
--- a/src/Avalonia.Controls.DataGrid/Properties/AssemblyInfo.cs
+++ b/src/Avalonia.Controls.DataGrid/Properties/AssemblyInfo.cs
@@ -8,7 +8,6 @@ using Avalonia.Metadata;
[assembly: InternalsVisibleTo("Avalonia.Controls.UnitTests")]
[assembly: InternalsVisibleTo("Avalonia.DesignerSupport")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia")]
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Controls")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Controls.Primitives")]
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Controls.Collections")]
+[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Controls.Primitives")]
diff --git a/src/Avalonia.Controls.DataGrid/Themes/Default.xaml b/src/Avalonia.Controls.DataGrid/Themes/Default.xaml
index 2889a5c77c..eaa267ba66 100644
--- a/src/Avalonia.Controls.DataGrid/Themes/Default.xaml
+++ b/src/Avalonia.Controls.DataGrid/Themes/Default.xaml
@@ -195,7 +195,6 @@