/// <summary> /// Sets the state of the object from serialization. /// </summary> /// <param name="info">Serialization state</param> /// <param name="mode">Serialization mode</param> protected override void OnSetState(SerializationInfo info, StateMode mode) { if (mode == StateMode.Serialization) { _stateStack.Clear(); if (info.Values.ContainsKey("_stateStack")) { //string xml = info.GetValue<string>("_stateStack"); byte[] xml = info.GetValue <byte[]>("_stateStack"); MobileList <SerializationInfo> list = (MobileList <SerializationInfo>)MobileFormatter.Deserialize(xml); SerializationInfo[] layers = list.ToArray(); Array.Reverse(layers); foreach (SerializationInfo layer in layers) { _stateStack.Push(layer); } } } _bindingEdit = info.GetValue <bool>("_bindingEdit"); base.OnSetState(info, mode); }