示例#1
0
 protected virtual void OnDataPointDataPointSelectionChanging(DataPointSelectionChangingEventArgs e)
 {
     if (this.DataPointSelectionChanging == null)
     {
         return;
     }
     this.DataPointSelectionChanging((object)this, e);
 }
示例#2
0
 internal void FireDataPointSelectionChanging(DataPoint dataPoint, bool addToSelection)
 {
     if (!this.IsMouseSelectionEnabled || dataPoint != null && !Enumerable.Contains <Series>(this.GetSeries(), dataPoint.Series))
     {
         return;
     }
     this.SuspendSelectionChangedEvents();
     try
     {
         if (dataPoint == null)
         {
             DataPointSelectionChangingEventArgs e = new DataPointSelectionChangingEventArgs((IList <DataPoint>)Enumerable.ToList <DataPoint>(this.GetSelectedDataPoints()), (IList <DataPoint>)null);
             this.OnDataPointDataPointSelectionChanging(e);
             if (e.Cancel)
             {
                 return;
             }
             this.ClearSelectedDataPoints();
         }
         else
         {
             List <DataPoint> list1 = new List <DataPoint>();
             List <DataPoint> list2 = new List <DataPoint>();
             if (!dataPoint.IsSelected)
             {
                 list2.Add(dataPoint);
             }
             else if (addToSelection)
             {
                 list1.Add(dataPoint);
             }
             if (!addToSelection)
             {
                 list1 = Enumerable.ToList <DataPoint>(Enumerable.Where <DataPoint>(this.GetSelectedDataPoints(), (Func <DataPoint, bool>)(p =>
                 {
                     if (p == dataPoint)
                     {
                         return(dataPoint.IsSelected);
                     }
                     return(true);
                 })));
             }
             DataPointSelectionChangingEventArgs e = new DataPointSelectionChangingEventArgs((IList <DataPoint>)list1, (IList <DataPoint>)list2);
             this.OnDataPointDataPointSelectionChanging(e);
             if (e.Cancel)
             {
                 return;
             }
             list1.ForEach((Action <DataPoint>)(p => p.IsSelected = false));
             list2.ForEach((Action <DataPoint>)(p => p.IsSelected = true));
         }
     }
     finally
     {
         this.ReleaseSelectionChangedEvents();
     }
 }