public void RaiseSnapshotDataChanged(SnapshotAMSContract2 contact) { if (snapshotDataChanged != null) { snapshotDataChanged(this, new SnapshotDataChangedEventArgs(contact)); } }
private void OnSnapshotDataChanged(SnapshotAMSContract2 contract) { try { showAMSCheckBox.IsChecked = true; m_chart.BeginUpdate(); if (contract != null) { if (m_chart.ViewXY.PointLineSeries[1].PointCount > 0) { m_chart.ViewXY.PointLineSeries[1].Clear(); } var snapshotItems = contract.Item.OrderBy(o => o.STIME).ToArray(); int length = snapshotItems.Length; SeriesPoint[] points = new SeriesPoint[length]; for (int i = 0; i < length; i++) { points[i].X = m_chart.ViewXY.XAxes[0].DateTimeToAxisValue(snapshotItems[i].STIME); points[i].Y = snapshotItems[i].AMS; points[i].Tag = snapshotItems[i].id; } if (length > 0) { if (m_chart.ViewXY.LineSeriesCursors[0].ValueAtXAxis <points[0].X || m_chart.ViewXY.LineSeriesCursors[0].ValueAtXAxis> points[length - 1].X) { m_chart.ViewXY.LineSeriesCursors[0].ValueAtXAxis = points[length / 2].X; } } m_chart.ViewXY.PointLineSeries[0].Points = points; m_chart.ViewXY.FitView(); } else { viewModel.CurrentSnapshotContract = null; if (m_chart.ViewXY.PointLineSeries[0].PointCount > 0) { m_chart.ViewXY.PointLineSeries[0].Clear(); } } m_chart.EndUpdate(); } catch (Exception ex) { _eventAggregator.GetEvent <ThrowExceptionEvent>().Publish(Tuple.Create <string, Exception>("数据回放-报警点趋势-趋势", ex)); m_chart.EndUpdate(); } }
public SnapshotDataChangedEventArgs(SnapshotAMSContract2 contract) { _contract = contract; }