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