/// <summary> /// 反序列化 /// </summary> /// <param name="serializationInfo"></param> public override void Deserialize(SerializationInfo serializationInfo) { base.Deserialize(serializationInfo); try { if (serializationInfo["Figure"] != null) { var buffer = Convert.FromBase64String(serializationInfo["Figure"].ToString()); IFormatter formatter = new BinaryFormatter(); using (var ms = new MemoryStream(buffer)) { Content = formatter.Deserialize(ms); //绑定Shape坐标和Figure坐标 this.DataContext = Content; var binding = new Binding("Position") { Mode = BindingMode.TwoWay }; this.SetBinding(PositionProperty, binding); } } } catch (Exception e) { throw new Exception("反序列化过程失败:" + e.Message); } }
public override void Deserialize(Telerik.Windows.Diagrams.Core.SerializationInfo info) { base.Deserialize(info); if (info["Index"] != null) { this.Index = int.Parse(info["Index"].ToString()); } if (info["PointType"] != null) { this.PointType = info["PointType"].ToString(); } if (info["ObsPointX"] != null) { this.ObsPointX = float.Parse(info["ObsPointX"].ToString()); } if (info["ObsPointY"] != null) { this.ObsPointY = float.Parse(info["ObsPointY"].ToString()); } if (info["Description"] != null) { this.Description = info["Description"].ToString(); } //if (info["Description2"] != null) // this.Description2 = info["Description2"].ToString(); //if (info["Description3"] != null) // this.Description3 = info["Description3"].ToString(); //if (info["Description4"] != null) // this.Description4 = info["Description4"].ToString(); //if (info["Description5"] != null) // this.Description5 = info["Description5"].ToString(); if (info["oldPointType"] != null) { this._oldPointtype = info["oldPointType"].ToString(); } }
/// <summary> /// 序列化 /// </summary> /// <returns></returns> public override SerializationInfo Serialize() { SerializationInfo serializationInfo = base.Serialize(); try { var obj = base.Content as FigureBase; if (obj != null) { IFormatter formatter = new BinaryFormatter(); using (var ms = new MemoryStream()) { formatter.Serialize(ms, obj); serializationInfo["Figure"] = Convert.ToBase64String(ms.ToArray()); } } } catch (Exception e) { throw new Exception("序列化过程失败:" + e.Message); } return(serializationInfo); }
/// <summary> /// Overrides Deserialize methods to get custom data /// </summary> /// <param name="info">SerializationInfo</param> public override void Deserialize(Telerik.Windows.Diagrams.Core.SerializationInfo info) { base.Deserialize(info); this.Name = info[nameof(Name)]?.ToString(); }
public override OrgItem DeserializeNode(Telerik.Windows.Diagrams.Core.IShape shape, Telerik.Windows.Diagrams.Core.SerializationInfo info) { base.DeserializeNode(shape, info); if (info["Title"] != null) { return(new OrgItem(info["Title"].ToString())); } return(null); }
public override void SerializeNode(OrgItem node, Telerik.Windows.Diagrams.Core.SerializationInfo info) { base.SerializeNode(node, info); info["Title"] = node.Title; }
public override ShapeViewModel DeserializeNode(Telerik.Windows.Diagrams.Core.IShape shape, Telerik.Windows.Diagrams.Core.SerializationInfo info) { ShapeViewModel model = new ShapeViewModel() { Geometry = GeometryParser.GetGeometry(info["MyGeometry"].ToString()) }; return(model); }