public WellView() { InitializeComponent(); DataContextChanged += new DependencyPropertyChangedEventHandler(WellView_DataContextChanged); Loaded += new RoutedEventHandler(WellView_Loaded); SelectedPoint.SetXMapping(var => dateAxis.ConvertToDouble(var.Time)); SelectedPoint.SetYMapping(var => var.Value); ObsGraph.MouseLeftButtonDown += new MouseButtonEventHandler(g_MouseLeftButtonDown); ObsGraph.AddLineGraph(SelectedPoint, null, new CircleElementPointMarker { Size = 10, Brush = Brushes.Red, Fill = Brushes.Orange } , null); pens = new Pen[6]; pens[0] = new Pen(Brushes.Black, 3); pens[1] = new Pen(Brushes.Red, 3); pens[2] = new Pen(Brushes.Blue, 3); pens[3] = new Pen(Brushes.Green, 3); pens[4] = new Pen(Brushes.Yellow, 3); pens[5] = new Pen(Brushes.Brown, 3); }
void WellView_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { if (e.NewValue is WellViewModel) { SelectedPoint.Collection.Clear(); foreach (var g in _obsGraphs) { ObsGraph.Children.Remove(g); } _obsGraphs.Clear(); foreach (var g in _extGraphs) { PumpingGraph.Children.Remove(g); } _extGraphs.Clear(); WellViewModel wm = (WellViewModel)e.NewValue; int Pencount = 0; foreach (var ts in wm.HeadObservations) { ts.Value.SetXMapping(var => dateAxis.ConvertToDouble(var.Time)); ts.Value.SetYMapping(var => var.Value); var g = ObsGraph.AddLineGraph(ts.Value, pens[Pencount], new PenDescription(ts.Key.ToString())); _obsGraphs.Add(g); Pencount++; if (Pencount == pens.Count()) { Pencount = 0; } } Pencount = 0; foreach (var ts in wm.Extractions.Where(var => var.Item2.Count() > 0)) { EnumerableDataSource <Time.Core.TimestampValue> ds = new EnumerableDataSource <TimestampValue>(ts.Item2); ds.SetXMapping(var => dateAxisExt.ConvertToDouble(var.Time)); ds.SetYMapping(var => var.Value); var g = PumpingGraph.AddLineGraph(ds, pens[Pencount], new PenDescription(ts.Item1)); _extGraphs.Add(g); Pencount++; if (Pencount == pens.Count()) { Pencount = 0; } } } ZoomToTimeScale(); }