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;
 }