From 8e163f4434aaae744152005dbc1190a803029212 Mon Sep 17 00:00:00 2001 From: Arnar Gestsson Date: Thu, 1 Feb 2018 14:11:13 +0100 Subject: [PATCH] #1259 - Hidden LayoutAnchorables serialize/deserialize bug --- .../Xceed.Wpf.AvalonDock/Layout/LayoutRoot.cs | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutRoot.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutRoot.cs index d55bf630..023f7598 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutRoot.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutRoot.cs @@ -792,21 +792,31 @@ namespace Xceed.Wpf.AvalonDock.Layout reader.Read(); } - while( true ) + bool done = false; + + while(!done) { - var result = ReadElement( reader ) as LayoutFloatingWindow; - if( result == null ) + var element = ReadElement(reader); + + switch (element) { - break; + case LayoutFloatingWindow w: + resultList.Add(element); + break; + case LayoutAnchorable a: + resultList.Add(element); + break; + default: + done = true; + break; } - - resultList.Add( result ); } reader.ReadEndElement(); return resultList; } + private object ReadElement( XmlReader reader ) { @@ -924,11 +934,13 @@ namespace Xceed.Wpf.AvalonDock.Layout writer.WriteEndElement(); } writer.WriteEndElement(); - - writer.WriteStartElement( "Hidden" ); - foreach( var layoutAnchorable in Hidden ) + + writer.WriteStartElement("Hiddens"); + foreach (var layoutAnchorable in Hidden) { - layoutAnchorable.WriteXml( writer ); + writer.WriteStartElement(layoutAnchorable.GetType().Name); + layoutAnchorable.WriteXml(writer); + writer.WriteEndElement(); } writer.WriteEndElement(); }