using Yw.Model; namespace Yw.WinFrmUI { public partial class HydroCalcuWarningCtrl : DevExpress.XtraEditors.XtraUserControl { public HydroCalcuWarningCtrl() { InitializeComponent(); this.gridView1.SetNormalView(30); this.gridView1.RegistCustomDrawRowIndicator(40); } /// /// 水力点击事件 /// public event Action HydroClickEvent; //所有绑定列表 private List _allBindingList = null; /// /// 绑定数据 /// public void SetBindingData(List allWarningList, HydroModelInfo hydroInfo) { var allVisualList = hydroInfo?.GetAllVisuals(); SetBindingData(allWarningList, allVisualList); } /// /// 绑定数据 /// public void SetBindingData(List allWarningList, List allVisualList) { Dictionary dict = null; if (allVisualList != null && allVisualList.Count > 0) { dict = new Dictionary(); allVisualList.ForEach(x => dict.Add(x.Code, x)); } SetBindingData(allWarningList, dict); } /// /// 绑定数据 /// public void SetBindingData(List allWarningList, Dictionary dict) { _allBindingList = new List(); if (allWarningList != null && allWarningList.Count > 0) { if (dict != null && dict.Count > 0) { allWarningList.ForEach(x => { if (dict.ContainsKey(x.Code)) { var vm = new HydroCalcuWarningViewModel(x, dict[x.Code]); _allBindingList.Add(vm); } }); } } this.hydroCalcuWarningViewModelBindingSource.DataSource = _allBindingList; this.hydroCalcuWarningViewModelBindingSource.ResetBindings(false); } //行点击 private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e) { var row = this.gridView1.GetRow(e.RowHandle) as HydroCalcuWarningViewModel; if (row == null) { return; } this.HydroClickEvent?.Invoke(row.Code); } } }