namespace Yw.WinFrmUI
{
public partial class HydroCheckResultCtrl : DevExpress.XtraEditors.XtraUserControl
{
public HydroCheckResultCtrl()
{
InitializeComponent();
this.gridView1.SetNormalView(30);
this.gridView1.RegistCustomDrawRowIndicator(40);
}
///
/// 点击构件事件
///
public event Action HydroClickEvent;
//所有绑定列表
private List _allBindingList = null;
///
/// 绑定数据
///
public void SetBindingData(HydroCheckResult result)
{
if (result.Succeed)
{
this.peSucceed.Image = Yw.WinFrmUI.Hydro.Core.Properties.Resources.succeed_64;
}
else
{
this.peSucceed.Image = Yw.WinFrmUI.Hydro.Core.Properties.Resources.failed_64;
}
this.txtMode.EditValue = $"{HydroCheckMode.Count()}种";
this.txtType.EditValue = $"{HydroCheckType.Count()}类";
this.txtItems.EditValue = $"{result.Items.Count}个";
this.txtSucceedItems.EditValue = $"{result.Items.Count(x => !x.Failed)}个";
this.txtFailedItems.EditValue = $"{result.Items.Count(x => x.Failed)}个";
_allBindingList = new List();
foreach (var item in result.Items)
{
var vm = new HydroCheckItemViewModel(item);
_allBindingList.Add(vm);
}
_allBindingList = _allBindingList.OrderBy(x => x.SortCode).ToList();
this.hydroCheckItemViewModelBindingSource.DataSource = _allBindingList;
this.hydroCheckItemViewModelBindingSource.ResetBindings(false);
}
//行点击
private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
{
var row = this.gridView1.GetRow(e.RowHandle) as HydroCheckItemViewModel;
if (row == null)
{
return;
}
this.HydroClickEvent?.Invoke(row.Code);
}
//自定义单元格颜色
private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
{
var row = this.gridView1.GetRow(e.RowHandle) as HydroCheckItemViewModel;
if (row == null)
{
return;
}
if (e.RowHandle != this.gridView1.FocusedRowHandle)
{
if (row.Succeed)
{
e.Appearance.BackColor = Color.White;
e.Appearance.ForeColor = Color.Black;
}
else
{
e.Appearance.BackColor = Color.Red;
e.Appearance.ForeColor = Color.White;
}
}
else
{
e.Appearance.BackColor = Color.FromArgb(0, 122, 204);
e.Appearance.ForeColor = Color.White;
}
}
}
}