diff --git a/source/Components/AvalonDock/Controls/LayoutGridControl.cs b/source/Components/AvalonDock/Controls/LayoutGridControl.cs
index 9a7afdb3..4193e6e6 100644
--- a/source/Components/AvalonDock/Controls/LayoutGridControl.cs
+++ b/source/Components/AvalonDock/Controls/LayoutGridControl.cs
@@ -93,12 +93,21 @@ protected override void OnInitialized(EventArgs e)
#region Internal Methods
+ ///
+ /// Method is invoked to invoke custom code when all children are updated
+ /// towards the size they can occupy in the available space of the Grid control.
+ ///
protected void FixChildrenDockLengths()
{
using (_fixingChildrenDockLengths.Enter())
OnFixChildrenDockLengths();
}
+ ///
+ /// This method provides an opportunity for deriving classes to invoke custom when
+ /// all children of this Grid are update towards the size
+ /// they can occupy in the available space of the Grid control.
+ ///
protected abstract void OnFixChildrenDockLengths();
#endregion
@@ -130,6 +139,11 @@ private void OnUnloaded(object sender, RoutedEventArgs e)
Unloaded -= OnUnloaded;
}
+ ///
+ /// Is invoked to update all children towards the size they can occupy in the available space
+ /// of the Grid control. This includes detaching/attaching all relevant event handlers and
+ /// property bindings.
+ ///
private void UpdateChildren()
{
var alreadyContainedChildren = Children.OfType().ToArray();
@@ -189,6 +203,10 @@ private void OnChildModelPropertyChanged(object sender, System.ComponentModel.Pr
UpdateRowColDefinitions();
}
+ ///
+ /// Is invoked to update column and row definitions towards the available size
+ /// when processing resize events or application start-up.
+ ///
private void UpdateRowColDefinitions()
{
var root = _model.Root;
diff --git a/source/Components/AvalonDock/Layout/LayoutAnchorable.cs b/source/Components/AvalonDock/Layout/LayoutAnchorable.cs
index 3aabc49e..23306af8 100644
--- a/source/Components/AvalonDock/Layout/LayoutAnchorable.cs
+++ b/source/Components/AvalonDock/Layout/LayoutAnchorable.cs
@@ -540,7 +540,11 @@ internal void CloseAnchorable()
{
if (!TestCanClose()) return;
if (IsAutoHidden) ToggleAutoHide();
+
+ RaisePropertyChanging(nameof(IsVisible));
CloseInternal();
+ IsVisible = false;
+ RaisePropertyChanged(nameof(IsVisible));
}
internal void SetCanCloseInternal(bool canClose)