private void SetDiagramDatasActions() { DiagramDatas.CollectionChanged += async(s, e) => { if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add) { var newEle = e.NewItems; for (int i = 0; i < newEle.Count; i++) { var color = ColorUtil.RandomColorString(); var ele = newEle[i] as IEnumerable <Point>; var lineSet = new LineDataset <Point>(newEle[i] as IEnumerable <Point>) { Label = "Sec " + (DiagramDatas.Count()), BackgroundColor = color, BorderWidth = borderWidth, BorderColor = color, PointHitRadius = 5, PointHoverRadius = 5, }; _config.Data.Datasets.Add(lineSet); } } else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove) { var newEle = e.OldItems; for (int i = 0; i < newEle.Count; i++) { var ele = _config.Data.Datasets.ToList().Find((x) => (x as LineDataset <Point>).Label == "Sec " + (e.OldStartingIndex + 1)); _config.Data.Datasets.Remove(ele); } resetLabelText(); OnChangedSecetion(-1); } else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Replace) { var oldEle = e.OldItems; var newEle = e.NewItems; for (int i = 0; i < oldEle.Count; i++) { var ele = _config.Data.Datasets.ToList().Find((x) => (x as LineDataset <Point>).Label == "Sec " + (e.OldStartingIndex + 1)) as LineDataset <Point>; ele.RemoveAll(x => true); ele.AddRange(newEle[i] as IEnumerable <Point>); } OnChangedSecetion(-1); } await InvokeAsync(this.StateHasChanged); }; }
private void OnDeleteItem(int index) { DiagramDatas.RemoveAt(index); var a = index; }