Browse Source

1.修复datahistory方向顺序与代码不一致问题
2.processhistory增加DoubleLik模式切换功能
3.realTime优化hold时间继续绘制曲线

huangping 2 weeks ago
parent
commit
093c45d402

+ 2 - 2
FrameworkLocal/UIClient/CenterViews/DataLogs/DataHistory/DataView.xaml

@@ -291,10 +291,10 @@
                         </i:EventTrigger>
                     </i:Interaction.Triggers>
                 </Button>
-                <ComboBox x:Name="CbDirection" SelectedIndex="0" IsEditable="False" Margin="2,2,0,2">
-                    <ComboBoxItem Content="XYDirection"/>
+                <ComboBox x:Name="CbDirection" SelectedIndex="2" IsEditable="False" Margin="2,2,0,2">
                     <ComboBoxItem Content="XDirection"/>
                     <ComboBoxItem Content="YDirection"/>
+                    <ComboBoxItem Content="XYDirection"/>
                 </ComboBox>
             </StackPanel>
         </Grid>

+ 25 - 14
FrameworkLocal/UIClient/CenterViews/DataLogs/ProcessHistory/ProcessDetailView.xaml

@@ -165,6 +165,8 @@
                         <RadioButton x:Name="ShowVerticalLine" Content="+" Width="60" ToolTip="Add Vertical Line" Checked="RadioButton_Checked" Unchecked="ShowVetical_UnChecked" GroupName="select"/>
                         <RadioButton x:Name="HoldVetical" Content="Hold" Width="60" ToolTip="Hold Vertical Line"  IsEnabled="{Binding Source={x:Reference Name=ShowVerticalLine},Path=IsChecked}" />
                         <RadioButton x:Name="DeleteVertical" Content="-" Width="60" ToolTip="Delect Vertical Line" Checked="RadioButton_Checked" GroupName="select"/>
+                        <RadioButton  Content="DoubleLink" Width="100" ToolTip="Delect Vertical Line" IsChecked="{Binding IsDoubleChartLinkage,Mode=OneWay}" GroupName="linkage" Visibility="{Binding Source={x:Reference Name=DoubleChart},Path=IsChecked,Converter={StaticResource bool2VisibilityConverter}}"
+                                      micro:Message.Attach="DoubleChartLink"/>
                     </StackPanel>
                     <Grid Height="698">
                         <Grid.RowDefinitions>
@@ -199,14 +201,14 @@
                             <s:SciChartSurface.ChartModifier>
                                 <s:ModifierGroup s:MouseManager.MouseEventGroup="myCustomGroup">
                                     <s:RubberBandXyZoomModifier x:Name="rubberBandZoomModifier"   ExecuteOn="MouseLeftButton" IsAnimated="True"
-                                     IsEnabled="{Binding Source={x:Reference Name=IsEnableZoom},Path=IsChecked}"  IsXAxisOnly="False"  ZoomExtentsY="False" ReceiveHandledEvents="True"/>
-                                    <s:CursorModifier IsEnabled="True"  ShowAxisLabels="True" ShowTooltip="False" ShowTooltipOn="MouseOver"  SourceMode="AllVisibleSeries" ReceiveHandledEvents="True"/>
+                                     IsEnabled="{Binding Source={x:Reference Name=IsEnableZoom},Path=IsChecked}"  IsXAxisOnly="False"  ZoomExtentsY="False"/>
+                                    <s:CursorModifier IsEnabled="True"  ShowAxisLabels="True" ShowTooltip="False" ShowTooltipOn="MouseOver"  SourceMode="AllVisibleSeries" ReceiveHandledEvents="{Binding IsDoubleChartLinkage}"/>
                                     <s:ZoomExtentsModifier x:Name="zoomExtentsModifier"  ExecuteOn="MouseDoubleClick"   XyDirection="XYDirection"/>
                                     <s:ZoomPanModifier  x:Name="zoomPanModifier"  ClipModeX="None" ExecuteOn="MouseLeftButton" 
                                            IsEnabled="{Binding Source={x:Reference Name=IsEnablePan},Path=IsChecked}" XyDirection="{Binding Direction}"
-                                           ZoomExtentsY="False" ReceiveHandledEvents="True"/>
+                                           ZoomExtentsY="False" />
                                     <s:RolloverModifier  x:Name="rolloverModifier" SourceMode="AllVisibleSeries"  DrawVerticalLine="False" 
-                                      FontFamily="Arial,SimSun" FontSize="9" IsEnabled="True" ShowAxisLabels="False" SnapsToDevicePixels="False" UseInterpolation="False" ReceiveHandledEvents="True"/>
+                                      FontFamily="Arial,SimSun" FontSize="9" IsEnabled="True" ShowAxisLabels="False" SnapsToDevicePixels="False" UseInterpolation="False" ReceiveHandledEvents="{Binding IsDoubleChartLinkage}"/>
 
                                     <s:MouseWheelZoomModifier XyDirection="{Binding Direction}"/>
                                     <!--<s:SeriesSelectionModifier IsEnabled="{Binding Source={x:Reference Name=SelectSeries}, Path=IsChecked}">
@@ -223,18 +225,18 @@
                                             </Style>
                                         </s:SeriesSelectionModifier.SelectedSeriesStyle>
                                     </s:SeriesSelectionModifier>-->
-                                    <s:VerticalSliceModifier Name="sliceModifier" ReceiveHandledEvents="True"/>
+                                    <s:VerticalSliceModifier Name="sliceModifier" />
                                     <s:AnnotationCreationModifier x:Name="annotationCreation" IsEnabled="{Binding Source={x:Reference Name=ZoomByLine},Path=IsChecked}" AnnotationType="{x:Type s:LineArrowAnnotation}"
                                                                   AnnotationStyle="{StaticResource lineArrowAnnotationStyle}" AnnotationCreated="OnAnnotationCreated"/>
                                 </s:ModifierGroup>
                             </s:SciChartSurface.ChartModifier>
                         </s:SciChartSurface>
                         <s:SciChartSurface x:Name="syncChart" RenderableSeries="{Binding SynSelectedData}" Grid.Row="1"  s:ThemeManager.Theme="ExpressionDark"
-                                           s:SciChartGroup.VerticalChartGroup="SyncedChartsSameAxisSizes" Visibility="Hidden" Grid.ColumnSpan="2">
+                                           Visibility="Hidden" Grid.ColumnSpan="2">
                             <!--  Create an X Axis  -->
                             <s:SciChartSurface.XAxis>
-                                <s:NumericAxis  DrawMinorGridLines="False"  DrawMinorTicks="False"   DrawMajorGridLines="False"
-                                  VisibleRange="{Binding VisibleRangeTime,Mode=TwoWay}"  LabelProvider="{Binding MultiLineLabel}" DrawMajorBands="False"/>
+                                <s:NumericAxis  DrawMinorGridLines="False"  DrawMinorTicks="False" DrawMajorGridLines="False"
+                                  LabelProvider="{Binding MultiLineLabel}" DrawMajorBands="False"/>
                             </s:SciChartSurface.XAxis>
                             <!--  Create a Y Axis  -->
                             <s:SciChartSurface.YAxis>
@@ -246,15 +248,15 @@
                             </s:SciChartSurface.YAxis>
                             <s:SciChartSurface.ChartModifier>
                                 <s:ModifierGroup s:MouseManager.MouseEventGroup="myCustomGroup">
-                                    <s:RubberBandXyZoomModifier  ExecuteOn="MouseLeftButton" IsAnimated="True" ReceiveHandledEvents="True" Tag="SecondYAxis"
+                                    <s:RubberBandXyZoomModifier  ExecuteOn="MouseLeftButton" IsAnimated="True" Tag="SecondYAxis"
                                      IsEnabled="{Binding Source={x:Reference Name=IsEnableZoom},Path=IsChecked}"  IsXAxisOnly="False"  ZoomExtentsY="False"/>
-                                    <s:CursorModifier IsEnabled="True"  ShowAxisLabels="True" ShowTooltip="False" ShowTooltipOn="MouseOver"  SourceMode="AllVisibleSeries"/>
-                                    <s:ZoomExtentsModifier   ExecuteOn="MouseDoubleClick"   XyDirection="XYDirection" />
+                                    <s:CursorModifier IsEnabled="True"  ShowAxisLabels="True" ShowTooltip="False" ShowTooltipOn="MouseOver"  SourceMode="AllVisibleSeries" ReceiveHandledEvents="{Binding IsDoubleChartLinkage}" Tag="SecondYAxis"/>
+                                    <s:ZoomExtentsModifier  ExecuteOn="MouseDoubleClick"   XyDirection="XYDirection" Tag="SecondYAxis" />
                                     <s:ZoomPanModifier   ClipModeX="None" ExecuteOn="MouseLeftButton" 
                                            IsEnabled="{Binding Source={x:Reference Name=IsEnablePan},Path=IsChecked}" XyDirection="{Binding Direction}"
-                                           ZoomExtentsY="False" ReceiveHandledEvents="True" Tag="SecondYAxis"/>
+                                           ZoomExtentsY="False" Tag="SecondYAxis"/>
                                     <s:RolloverModifier  SourceMode="AllVisibleSeries"  DrawVerticalLine="False" 
-                                      FontFamily="Arial,SimSun" FontSize="9" IsEnabled="True"  ShowAxisLabels="False" SnapsToDevicePixels="False" UseInterpolation="False" ReceiveHandledEvents="True" Tag="SecondYAxis"/>
+                                      FontFamily="Arial,SimSun" FontSize="9" IsEnabled="True"  ShowAxisLabels="False" SnapsToDevicePixels="False" UseInterpolation="False" ReceiveHandledEvents="{Binding IsDoubleChartLinkage}" Tag="SecondYAxis"/>
                                     <s:MouseWheelZoomModifier XyDirection="{Binding Direction}"/>
                                     <!--<s:SeriesSelectionModifier IsEnabled="{Binding Source={x:Reference Name=SelectSeries}, Path=IsChecked}" Tag="SecondYAxis">
                                         <s:SeriesSelectionModifier.SelectedSeriesStyle>
@@ -270,9 +272,18 @@
                                         </s:SeriesSelectionModifier.SelectedSeriesStyle>
                                     </s:SeriesSelectionModifier>-->
                                     <s:AnnotationCreationModifier  IsEnabled="{Binding Source={x:Reference Name=ZoomByLine},Path=IsChecked}" AnnotationType="{x:Type s:LineArrowAnnotation}"
-                                                                  AnnotationStyle="{StaticResource lineArrowAnnotationStyle}" AnnotationCreated="OnAnnotationCreated"/>
+                                                                  AnnotationStyle="{StaticResource lineArrowAnnotationStyle}" AnnotationCreated="OnAnnotationCreated" Tag="SecondYAxis"/>
                                 </s:ModifierGroup>
                             </s:SciChartSurface.ChartModifier>
+                            <s:SciChartSurface.Style>
+                                <Style TargetType="s:SciChartSurface">
+                                    <Style.Triggers>
+                                        <DataTrigger Binding="{Binding IsDoubleChartLinkage}" Value="True">
+                                            <Setter Property="s:SciChartGroup.VerticalChartGroup" Value="SyncedChartsSameAxisSizes"/>
+                                        </DataTrigger>
+                                    </Style.Triggers>
+                                </Style>
+                            </s:SciChartSurface.Style>
                         </s:SciChartSurface>
                     </Grid>
                     <StackPanel Orientation="Horizontal">

+ 9 - 12
FrameworkLocal/UIClient/CenterViews/DataLogs/ProcessHistory/ProcessDetailView.xaml.cs

@@ -24,7 +24,6 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
     /// </summary>
     public partial class ProcessDetailView : UserControl
     {
-        private ProcessDetailViewModel<double> processDetail;
         public ProcessDetailView()
         {
             InitializeComponent();          
@@ -35,8 +34,7 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
             {
                 try
                 {
-                    processDetail = DataContext as ProcessDetailViewModel<double>;  
-                    if (processDetail != null)
+                    if (e.NewAnnotation.ParentSurface != null)
                     {
                         double x1 = 0, y1 = 0, x2 = 0, y2 = 0, temp = 0;
                         if (newAnnotation.X1 is Double xx1) x1 = xx1;
@@ -44,29 +42,28 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
                         if (newAnnotation.Y1 is Double yy1) y1 = yy1;
                         if (newAnnotation.Y2 is Double yy2) y2 = yy2;
                         if (x1 > x2) { temp = x1; x1 = x2; x2 = temp; }
-                        processDetail.VisibleRangeTime = new DoubleRange()
+                        e.NewAnnotation.ParentSurface.XAxis.VisibleRange = new DoubleRange()
                         {
                             Min = x1,
                             Max = x2
                         };
                         LOG.Info($"LineArrowAnnotation x1[{x1},x2[{x2}]]");
                         if (y1 > y2) { temp = y1; y1 = y2; y2 = temp; }
-                        processDetail.VisibleRangeValue = new DoubleRange()
+                        e.NewAnnotation.ParentSurface.YAxis.VisibleRange = new DoubleRange()
                         {
                             Min = y1,
                             Max = y2
                         };
                         LOG.Info($"LineArrowAnnotation y1[{y1},y2[{y2}]]");
-                    }                   
-                    if(!sciChart.Annotations.Remove(newAnnotation))
-                    syncChart?.Annotations?.Remove(newAnnotation);
+                    }
+                    e.NewAnnotation.ParentSurface.Annotations.Clear();
                     ZoomByLine.IsChecked = false;
                 }
-                catch(Exception ex)
+                catch (Exception ex)
                 {
                     LOG.Info($"LineArrowAnnotation:{ex.StackTrace}-{ex.Message}");
                 }
-            } 
+            }
         }
 
         private void RadioButton_Checked(object sender, RoutedEventArgs e)
@@ -108,7 +105,7 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
                 syncChart.Visibility = Visibility.Visible;
                 doubleParameterTree.Visibility = Visibility.Visible;
                 treeTitle.Visibility = Visibility.Visible;
-                Grid.SetRowSpan(ParameterTreeView, 1);
+                Grid.SetRowSpan(ParameterTreeView, 1);   
             }
             else
             {
@@ -116,7 +113,7 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
                 Grid.SetRowSpan(sciChart, 2);
                 treeTitle.Visibility= Visibility.Collapsed;
                 doubleParameterTree.Visibility = Visibility.Collapsed;
-                Grid.SetRowSpan(ParameterTreeView, 3);
+                Grid.SetRowSpan(ParameterTreeView, 3);       
             }
         }
 

+ 56 - 15
FrameworkLocal/UIClient/CenterViews/DataLogs/ProcessHistory/ProcessDetailViewModel.cs

@@ -34,6 +34,10 @@ using System.Windows.Controls;
 using SciChart.Charting.Model.ChartData;
 using MECF.Framework.UI.Client.Converter;
 using MECF.Framework.UI.Client.CenterViews.Operations.RealTime;
+using Mapster;
+using System.Globalization;
+using System.Windows.Data;
+using DocumentFormat.OpenXml.Bibliography;
 
 namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
 {
@@ -55,8 +59,6 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
         public string TempCorrection { get; set; }
         public string TempPid { get; set; }
     }
-
-
     public class ProcessDetailViewModel<T> : ModuleUiViewModelBase where T : IComparable
     {
         public class TimeChartDataLine : ChartDataLine<T>
@@ -107,8 +109,6 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
             set { _ParameterNodes = value; NotifyOfPropertyChange("ParameterNodes"); }
         }
         public List<ParameterNode> DoubleParameterNodes { get; set; } = new List<ParameterNode>();
-
-
         public ObservableCollection<IRenderableSeries> SelectedData { get; set; }
         public ObservableCollection<IRenderableSeries> SynSelectedData { get; set; }
 
@@ -126,10 +126,8 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
                 NotifyOfPropertyChange(nameof(ChartAutoRange));
             }
         }
-
-
-        private IRange _timeRange;
-        public IRange VisibleRangeTime
+        private DoubleRange _timeRange;
+        public DoubleRange VisibleRangeTime
         {
             get { return _timeRange; }
             set
@@ -138,14 +136,42 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
                 NotifyOfPropertyChange(nameof(VisibleRangeTime));
             }
         }
-
-
         private IRange _VisibleRangeValue;
         public IRange VisibleRangeValue
         {
             get { return _VisibleRangeValue; }
             set { _VisibleRangeValue = value; NotifyOfPropertyChange(nameof(VisibleRangeValue)); }
         }
+        private DoubleRange _doubleRangeTime;
+        public DoubleRange DoubleRangeTime
+        {
+            get => _doubleRangeTime;          
+            set
+            {
+                if (value != _doubleRangeTime)
+                {
+                    _doubleRangeTime = value;
+                    NotifyOfPropertyChange(nameof(DoubleRangeTime));
+                }
+            }
+        }
+        private bool _isDoubleChartLinkage=true;
+
+        public bool IsDoubleChartLinkage
+        {
+            get { return _isDoubleChartLinkage; }
+            set 
+            {
+                if (_isDoubleChartLinkage != value)
+                {
+                    _isDoubleChartLinkage = value;
+                    NotifyOfPropertyChange(nameof(IsDoubleChartLinkage));
+                    if (!value) VisibleRangeTime.Adapt(DoubleRangeTime);
+                    ApplyBindings(value);
+                }
+            }
+        }
+
 
         private PeriodicJob _thread;
 
@@ -307,8 +333,7 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
             }
             SelectedData = new ObservableCollection<IRenderableSeries>();
             SynSelectedData = new ObservableCollection<IRenderableSeries>();
-            VisibleRangeValue = new DoubleRange(0, 10);
-
+            VisibleRangeValue = new DoubleRange(0, 10);     
             // Annotations = new AnnotationCollection();
             _thread = new PeriodicJob(200, MonitorData, "ProcessDetail", true);
             try
@@ -323,7 +348,7 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
                     StepStartTime = StepInfo.FirstOrDefault().StartTime;
                     StepEndTime = StepInfo.LastOrDefault().EndTime;
                 }
-                MultiLineLabel = new MultiLineXAxisLabelProvider(StepStartTime);
+                MultiLineLabel = new MultiLineXAxisLabelProvider(StepStartTime);  
             }
             catch (Exception ex)
             {
@@ -336,6 +361,7 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
             base.OnViewLoaded(view);
 
             this.view = (ProcessDetailView)view;
+            ApplyBindings(IsDoubleChartLinkage);
         }
         protected override void OnActivate()
         {
@@ -556,8 +582,6 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
             return true;
         }
 
-
-
         private void GetData(List<string> keys, DateTime from, DateTime to, string module, string dataSource)
         {
             string sql = "select time AS InternalTimeStamp";
@@ -1426,6 +1450,23 @@ namespace MECF.Framework.UI.Client.CenterViews.DataLogs.ProcessHistory
                 else DialogBox.ShowWarning("already min value");
             }
         }
+        public void DoubleChartLink()
+        {
+            if (IsDoubleChartLinkage) IsDoubleChartLinkage = false;
+            else IsDoubleChartLinkage = true;      
+        }
+        private void ApplyBindings(bool isLinkMode)
+        {
+            var axis = view.syncChart.XAxis as NumericAxis;
+            BindingOperations.ClearBinding(axis, NumericAxis.VisibleRangeProperty);
+            var binding = new Binding(isLinkMode ? nameof(VisibleRangeTime) : nameof(DoubleRangeTime))
+            {
+                Source = this,
+                Mode = BindingMode.TwoWay,
+                UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
+            };
+            BindingOperations.SetBinding(axis, NumericAxis.VisibleRangeProperty, binding);
+        }
     }
     public class ProcessDataLot : NotifiableItem
     {

+ 6 - 6
FrameworkLocal/UIClient/CenterViews/Operations/RealTime/RealTimeView.xaml

@@ -174,16 +174,16 @@
             Grid.Column="2"
             Orientation="Vertical" Margin="0,5,0,0" HorizontalAlignment="Left">
             <StackPanel Orientation="Horizontal">
-                <RadioButton x:Name="HoldLine" Width="70" Content="Hold" Margin="2" GroupName="operate" IsChecked="{Binding IsHold, Mode=TwoWay}"/>
-                <RadioButton x:Name="ReleaseLine" Width="70" Content="Release" Margin="2"  GroupName="operate"/>
-                <RadioButton x:Name="EnablePan" Width="70" Content="Pan" Margin="2" IsChecked="{Binding Source={x:Reference Name=HoldLine},Path=IsChecked,Mode=OneWay}" GroupName="zoomPan"/>
-                <RadioButton x:Name="EnableZoom" Width="70" Content="Zoom" Margin="2" IsEnabled="{Binding Source={x:Reference Name=HoldLine},Path=IsChecked}" GroupName="zoomPan"/>
+                <RadioButton x:Name="HoldLine" Width="70" Content="Hold" Margin="2" GroupName="operate" />
+                <RadioButton x:Name="ReleaseLine" Width="70" Content="Release" Margin="2"  GroupName="operate" IsChecked="{Binding EnableAutoZoom, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+                <RadioButton x:Name="EnablePan" Width="70" Content="Pan" Margin="2" IsEnabled="{Binding EnableAutoZoom,Converter={StaticResource boolReverseConverter}}" IsChecked="True" GroupName="zoomPan"/>
+                <RadioButton x:Name="EnableZoom" Width="70" Content="Zoom" Margin="2" IsEnabled="{Binding EnableAutoZoom,Converter={StaticResource boolReverseConverter}}" GroupName="zoomPan"/>
                 <ComboBox x:Name="CbDirection" Width="120" IsEditable="False" SelectedIndex="2">
                     <ComboBoxItem Content="XDirection"/>
                     <ComboBoxItem Content="YDirection"/>
                     <ComboBoxItem Content="XYDirection"/>
                 </ComboBox>
-                <Button Content="Zoom In" Width="95" Margin="1,2,0,2" IsEnabled="{Binding Source={x:Reference Name=HoldLine},Path=IsChecked}">
+                <Button Content="Zoom In" Width="95" Margin="1,2,0,2" IsEnabled="{Binding EnableAutoZoom,Converter={StaticResource boolReverseConverter}}">
                     <i:Interaction.Triggers>
                         <i:EventTrigger EventName="Click">
                             <micro:ActionMessage MethodName="ZoomInClick">
@@ -192,7 +192,7 @@
                         </i:EventTrigger>
                     </i:Interaction.Triggers>
                 </Button>
-                <Button Content="Zoom Out" Width="95"  Margin="1,2,0,2" IsEnabled="{Binding Source={x:Reference Name=HoldLine},Path=IsChecked}">
+                <Button Content="Zoom Out" Width="95"  Margin="1,2,0,2" IsEnabled="{Binding EnableAutoZoom,Converter={StaticResource boolReverseConverter}}">
                     <i:Interaction.Triggers>
                         <i:EventTrigger EventName="Click">
                             <micro:ActionMessage MethodName="ZoomOutClick">

+ 2 - 18
FrameworkLocal/UIClient/CenterViews/Operations/RealTime/RealTimeViewModel.cs

@@ -112,23 +112,7 @@ namespace MECF.Framework.UI.Client.CenterViews.Operations.RealTime
         [IgnorePropertyChange]
         public int TrendTimeSpan { get; set; }
 
-        public bool TimeSpanSaved { get; set; }
-        private bool  _IsHold;
-
-        public bool  IsHold
-        {
-            get { return _IsHold; }
-            set 
-            {
-                if (_IsHold!=value)
-                {
-                    _IsHold = value;
-                    if (_IsHold) EnableAutoZoom = false;
-                    else EnableAutoZoom = true;
-                    NotifyOfPropertyChange(nameof(IsHold));
-                }              
-            }
-        }
+        public bool TimeSpanSaved { get; set; }    
 
 
         #endregion
@@ -140,7 +124,7 @@ namespace MECF.Framework.UI.Client.CenterViews.Operations.RealTime
             try
             {
                 Dictionary<string, object> data = new Dictionary<string, object>();
-                if (!IsHold && SelectedData.Count > 0)
+                if (SelectedData.Count > 0)
                 {
                     var rtData = QueryDataClient.Instance.Service.PollData(SelectedData.Select(r => FindKeyByValue(_displayDic, (r as FastLineSeries)?.DataName)).ToList());