/// <summary> /// Adds data points from the specified source to the specified destination. /// </summary> /// <param name="target">The destination target.</param> /// <param name="itemsSource">The source.</param> /// <param name="dataFieldX">The x-coordinate data field.</param> /// <param name="dataFieldY">The y-coordinate data field.</param> public static void FillList(List <DataPoint> target, IEnumerable itemsSource, string dataFieldX, string dataFieldY) { PropertyInfo pix = null; PropertyInfo piy = null; Type t = null; foreach (var o in itemsSource) { if (pix == null || o.GetType() != t) { t = o.GetType(); pix = t.GetProperty(dataFieldX); piy = t.GetProperty(dataFieldY); if (pix == null) { throw new InvalidOperationException( string.Format("Could not find data field {0} on type {1}", dataFieldX, t)); } if (piy == null) { throw new InvalidOperationException( string.Format("Could not find data field {0} on type {1}", dataFieldY, t)); } } double x = Axis.ToDouble(pix.GetValue(o, null)); double y = Axis.ToDouble(piy.GetValue(o, null)); var pp = new DataPoint(x, y); target.Add(pp); } }
/// <summary> /// Adds data points from the specified source to the specified destination. /// </summary> /// <param name="target">The destination target.</param> /// <param name="itemsSource">The source.</param> /// <param name="dataFieldX">The x-coordinate data field.</param> /// <param name="dataFieldY">The y-coordinate data field.</param> public static void AddRange(this List <DataPoint> target, IEnumerable itemsSource, string dataFieldX, string dataFieldY) { var pix = new ReflectionPath(dataFieldX); var piy = new ReflectionPath(dataFieldY); foreach (var o in itemsSource) { target.Add(new DataPoint(Axis.ToDouble(pix.GetValue(o)), Axis.ToDouble(piy.GetValue(o)))); } }