using DevExpress.CodeParser; using DevExpress.XtraCharts; namespace Yw.WinFrmUI { public partial class HydroWorkingTotalEvaluationCtrl : DevExpress.XtraEditors.XtraUserControl { public HydroWorkingTotalEvaluationCtrl() { InitializeComponent(); } /// /// 绑定数据 /// public void SetBindingData(List allEvaluationList) { if (allEvaluationList == null || allEvaluationList.Count < 1) { return; } var list = allEvaluationList.Where(x => x.EvaluateError.HasValue).ToList(); if (list.Count > 0) { var avgValue = list.Average(x => x.EvaluateError.Value); var seriesView = this.chartControl1.Series[0].View as DoughnutSeriesView; seriesView.TotalLabel.TextPattern = $"{Math.Round(avgValue, 1)}%"; } var series = this.chartControl1.Series[0]; series.Points.Clear(); var groupList = list?.GroupBy(x => x.PropName).ToList(); if (groupList != null && groupList.Count > 0) { foreach (var group in groupList) { var items = group.Where(x => x.EvaluateError.HasValue).ToList(); if (items != null && items.Count > 0) { var propName = HydroVisualCalcuPropHelper.GetName(group.Key); var avgValue = Math.Round(items.Average(x => x.EvaluateError.Value), 1); series.Points.Add(new SeriesPoint(propName, avgValue)); } } } } } }