private void OnAxisRecordStatusChanged(object sender, StatusChangedEventArgs e)
 {
     if (e == null)
     {
         return;
     }
     if (e.Action == StatusChangedAction.Added)
     {
         var records  = e.Records;
         var existIds = _axisInfos.Select(t => t.Id).ToList();
         for (var i = 0; i < records.Count; i++)
         {
             var record = records[i];
             if (!existIds.Contains((int)record[Axis.ColId]))
             {
                 var axisInfo = new AxisInfo(record);
                 _axisInfos.Add(axisInfo);
             }
         }
     }
     else if (e.Action == StatusChangedAction.Deleted)
     {
         var delItems = _axisInfos.Where(t => e.Records.Contains(t.AxisRecord)).ToList();
         delItems.ForEach(t => _axisInfos.Remove(t));
     }
     else if (e.Action == StatusChangedAction.Reset)
     {
         AxisInfos.Clear();
     }
 }
        public void Save(string Path, string filename)
        {
            if (!Directory.Exists(Path))
            {
                Directory.CreateDirectory(Path);
            }
            AxisInfos = AxisInfos.OrderBy(item => item.Rank).ToList <SingleAxisInfo>();
            string serializeInfo = Newtonsoft.Json.JsonConvert.SerializeObject(this);

            File.WriteAllText(Path + $"\\{pointName}.json", serializeInfo);
        }