private static void OnRealtimeTemperatureCollectionChange(DependencyObject d, DependencyPropertyChangedEventArgs e) { StepAreaAndLineChart owner = d as StepAreaAndLineChart; if (owner.PresettedSequence != null && owner.PresettedSequence.Count > 0 && e.NewValue != null) { ((CRealtimeTemperatureCollection)e.NewValue).TotalTime = owner.PresettedSequence.TotalTime; } }
private static void OnPresettedSequenceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { StepAreaAndLineChart owner = d as StepAreaAndLineChart; /* * 重新生成一个CTemperatureSequence对象,这个对象和传入的对象区别是: * 重新生成的CTemperatureSequence对象会在尾部多加一个Point,这个Point用来 * 正确产生Step Series的最后一个横阶梯 */ CTemperatureSequence seq; if (e.NewValue == null) { seq = new CTemperatureSequence(); } else { seq = ((CTemperatureSequence)e.NewValue).Clone() as CTemperatureSequence; if (seq.Count > 0) { /* 这里在最后加入一个Point用来修正Step Chart的View */ CTemperatureSequenceKeyPoint point = seq[seq.Count - 1]; seq.Add(new CTemperatureSequenceKeyPoint() { HoldTime = 0, TargetTemperature = point.TargetTemperature }); } } owner._SeriesSequence.DataSource = seq; /* 更新实时温度曲线的描点间隔 */ if (seq != null && seq.Count > 0 && owner.RealtimeTemperatureCollection != null) { owner.RealtimeTemperatureCollection.TotalTime = owner.PresettedSequence.TotalTime; } }
private static void OnRealtimeTemperatureVisibleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { StepAreaAndLineChart _owner = d as StepAreaAndLineChart; _owner._SeriesRealtime.Visible = (bool)e.NewValue; }