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