diff --git a/source/Components/Xceed.Wpf.AvalonDock/DockingManager.cs b/source/Components/Xceed.Wpf.AvalonDock/DockingManager.cs index b9350e6c..5286062a 100644 --- a/source/Components/Xceed.Wpf.AvalonDock/DockingManager.cs +++ b/source/Components/Xceed.Wpf.AvalonDock/DockingManager.cs @@ -2403,9 +2403,10 @@ private void DockingManager_Loaded( object sender, RoutedEventArgs e ) } _fwHiddenList.Clear(); - //load windows not already loaded! - foreach( var fw in Layout.FloatingWindows.Where( fw => !_fwList.Any( fwc => fwc.Model == fw ) ) ) - _fwList.Add( CreateUIElementForModel( fw ) as LayoutFloatingWindowControl ); + // load floating windows not already loaded! (issue #59) + List items = new List(Layout.FloatingWindows.Where(fw => !_fwList.Any(fwc => fwc.Model == fw))); + foreach (var fw in items) + _fwList.Add(CreateUIElementForModel(fw) as LayoutFloatingWindowControl); //create the overlaywindow if it's possible if( IsVisible ) @@ -2980,7 +2981,9 @@ private void RemoveViewFromLogicalChild( LayoutContent layoutContent ) private void InternalSetActiveContent( object contentObject ) { - var layoutContent = Layout.Descendents().OfType().FirstOrDefault( lc => lc == contentObject || lc.Content == contentObject ); + // BugFix for first issue in #59 + List list = Layout.Descendents().OfType().ToList(); + var layoutContent = list.FirstOrDefault( lc => lc == contentObject || lc.Content == contentObject ); _insideInternalSetActiveContent = true; Layout.ActiveContent = layoutContent; _insideInternalSetActiveContent = false;