/// <summary> /// /// </summary> /// <param name="context"></param> /// <param name="culture"></param> /// <param name="value"></param> /// <returns></returns> public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) { String state = value as String; if (state == null) { return(base.ConvertFrom(context, culture, value)); } if (state == String.Empty) { return(new RowHeaderColumnCollection()); } String[] parts = state.Split('&'); RowHeaderColumnCollection collection = new RowHeaderColumnCollection(); foreach (string encRes in parts) { string[] props = Encoder.UrlDecode(encRes).Split('&'); RowHeaderColumn r = new RowHeaderColumn(); r.Title = Encoder.UrlDecode(props[0]); r.Width = Convert.ToInt32(Encoder.UrlDecode(props[1])); collection.Add(r); } return(collection); }
/// <summary> /// /// </summary> /// <param name="context"></param> /// <param name="culture"></param> /// <param name="value"></param> /// <param name="destinationType"></param> /// <returns></returns> public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) { if (destinationType == null) { throw new ArgumentException("destinationType"); } RowHeaderColumnCollection collection = value as RowHeaderColumnCollection; if (collection == null) { return(base.ConvertTo(context, culture, value, destinationType)); } if (collection.designMode) { return("(Collection)"); } ArrayList al = new ArrayList(); foreach (RowHeaderColumn r in collection) { ArrayList properties = new ArrayList(); properties.Add(r.Title); properties.Add(r.Width); al.Add(Encoder.UrlEncode(properties)); } return(Encoder.UrlEncode(al)); }