lixiaojun
2024-12-10 caf081a70d327cfb455b2ddcd5edc2e0acb2d3bf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using DevExpress.CodeParser;
using DevExpress.Utils;
using DevExpress.XtraCharts;
using DevExpress.XtraEditors.Controls;
 
namespace Yw.WinFrmUI
{
    public partial class HydroWorkingTotalEvaluationCtrl : DevExpress.XtraEditors.XtraUserControl
    {
        public HydroWorkingTotalEvaluationCtrl()
        {
            InitializeComponent();
        }
 
        /// <summary>
        /// 边框可见性
        /// </summary>
        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<HydroWorkingTotalEvaluationViewModel> _allBindingList = null;//所有绑定列表
 
        /// <summary>
        /// 绑定数据
        /// </summary>
        public void SetBindingData(List<HydroWorkingMonitorEvaluationViewModel> allEvaluationList)
        {
            _allBindingList = new List<HydroWorkingTotalEvaluationViewModel>();
            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);
        }
 
 
 
 
 
    }
}