blob: d9edc478e28e0b78d16af3d8c9c35e36e7d0d8d0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
using RealTimeGraphEx.Controllers;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;
namespace RealTimeGraphEx
{
public class RealTimeGraphExMultiBase : RealTimeGraphExBase
{
#region Cross Thread Fields
protected GraphMultiController _graphController;
protected int _maxPoints;
protected int updateCounter;
protected double _scaleFactor;
#endregion
#region Properties
/// <summary>
/// Gets or sets the maximum points to display on the graph (default 1000).
/// </summary>
public int MaxPoints
{
get { return (int)GetValue(MaxPointsProperty); }
set { SetValue(MaxPointsProperty, value); }
}
public static readonly DependencyProperty MaxPointsProperty =
DependencyProperty.Register("MaxPoints", typeof(int), typeof(RealTimeGraphExMultiBase), new PropertyMetadata(1000, new PropertyChangedCallback(CrossModelChanged)));
/// <summary>
/// Gets or sets the collection of data series to display on the graph.
/// </summary>
public GraphMultiController Controller
{
get { return (GraphMultiController)GetValue(ControllerProperty); }
set { SetValue(ControllerProperty, value); }
}
public static readonly DependencyProperty ControllerProperty =
DependencyProperty.Register("Controller", typeof(GraphMultiController), typeof(RealTimeGraphExMultiBase), new PropertyMetadata(null, new PropertyChangedCallback(DataSeriesCollectionChanged)));
private static void DataSeriesCollectionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var control = d as RealTimeGraphExMultiBase;
control._graphController = control.Controller;
control.OnControllerChanged();
}
#endregion
#region Constructors
public RealTimeGraphExMultiBase()
: base()
{
_graphController = new GraphMultiController();
}
#endregion
#region Virtual Methods
protected virtual void OnControllerChanged()
{
}
#endregion
}
}
|