using DevExpress.Utils; using DevExpress.XtraCharts; namespace Yw.WinFrmUI { public partial class HydroAccuracyScaleChartCtrl : DevExpress.XtraEditors.XtraUserControl { public HydroAccuracyScaleChartCtrl() { InitializeComponent(); } /// /// 边框可见性 /// public bool BorderVisible { get { return this.chartControl1.BorderOptions.Visibility != DevExpress.Utils.DefaultBoolean.False; } set { this.chartControl1.BorderOptions.Visibility = value ? DefaultBoolean.Default : DefaultBoolean.False; } } private List _allBindingList = null;//所有绑定列表 /// /// 绑定数据 /// public void SetBindingData(List allEvaluationList) { _allBindingList = new List(); if (allEvaluationList != null && allEvaluationList.Count > 0) { var allEvaluationHasList = allEvaluationList.Where(x => x.EvaluateError.HasValue).ToList(); if (allEvaluationHasList.Count > 0) { var totalAvgValue = allEvaluationHasList.Average(x => x.EvaluateError.Value); var seriesView = this.chartControl1.Series[0].View as DoughnutSeriesView; seriesView.TotalLabel.TextPattern = $"{Math.Round(totalAvgValue, 1)}%"; var groupList = allEvaluationHasList.GroupBy(x => x.EvaluateItem); foreach (var group in groupList) { var avgValue = group.Average(x => x.EvaluateError.Value); var vm = new HydroWorkingTotalEvaluationViewModel(); vm.EvaluateItem = group.Key; vm.EvaluateCount = group.Count(); vm.EvaluateValue = Math.Round(avgValue, 1); _allBindingList.Add(vm); } } } this.hydroWorkingTotalEvaluationViewModelBindingSource.DataSource = _allBindingList; this.hydroWorkingTotalEvaluationViewModelBindingSource.ResetBindings(false); } } }