From d2968a30783740b56de6b2e9c70e1b2c650cbd31 Mon Sep 17 00:00:00 2001 From: ryoichi1988 Date: Thu, 13 Jul 2017 12:51:23 +0900 Subject: [PATCH 1/2] For improvement of docking performance, UpdateChildren is not done except DirectChildrenChanged --- .../Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs index c4fc3bfa..4e5303ca 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs @@ -72,6 +72,8 @@ namespace Xceed.Wpf.AvalonDock.Controls _model.ChildrenTreeChanged += (s, args) => { + if (args.Change != ChildrenTreeChange.DirectChildrenChanged) + return; if (_asyncRefreshCalled.HasValue && _asyncRefreshCalled.Value == args.Change) return; From 09260f4406f5d2989011eae0f35d29126cc6fb76 Mon Sep 17 00:00:00 2001 From: BoucherS Date: Fri, 15 Sep 2017 07:39:37 -0400 Subject: [PATCH 2/2] Update Pull Request 1170 to not use C# 6 stuff. Update Pull Request 1170 to not use C# 6 stuff. --- .../Controls/LayoutAnchorablePaneControl.cs | 5 ++++- .../Src/Xceed.Wpf.AvalonDock/Controls/LayoutItem.cs | 12 +++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneControl.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneControl.cs index 62ae0ccf..15640993 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneControl.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneControl.cs @@ -62,7 +62,10 @@ namespace Xceed.Wpf.AvalonDock.Controls protected override void OnGotKeyboardFocus(System.Windows.Input.KeyboardFocusChangedEventArgs e) { - _model.SelectedContent.IsActive = true; + if ((_model != null) && (_model.SelectedContent != null)) + { + _model.SelectedContent.IsActive = true; + } base.OnGotKeyboardFocus(e); } diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutItem.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutItem.cs index c2aa7836..ae47bdb1 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutItem.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutItem.cs @@ -204,9 +204,15 @@ namespace Xceed.Wpf.AvalonDock.Controls _view = new ContentPresenter(); _view.SetBinding(ContentPresenter.ContentProperty, new Binding("Content") { Source = LayoutElement }); - _view.SetBinding( ContentPresenter.ContentTemplateProperty, new Binding( "LayoutItemTemplate" ) { Source = LayoutElement.Root.Manager } ); - _view.SetBinding( ContentPresenter.ContentTemplateSelectorProperty, new Binding( "LayoutItemTemplateSelector" ) { Source = LayoutElement.Root.Manager } ); - LayoutElement.Root.Manager.InternalAddLogicalChild( _view ); + if ((LayoutElement != null) && (LayoutElement.Root != null)) + { + _view.SetBinding(ContentPresenter.ContentTemplateProperty, new Binding("LayoutItemTemplate") { Source = LayoutElement.Root.Manager }); + _view.SetBinding(ContentPresenter.ContentTemplateSelectorProperty, new Binding("LayoutItemTemplateSelector") { Source = LayoutElement.Root.Manager }); + if (LayoutElement.Root.Manager != null) + { + LayoutElement.Root.Manager.InternalAddLogicalChild(_view); + } + } } return _view;