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);
|
}
|
|
|
|
|
|
}
|
}
|