using HStation.WinFrmUI.PhartRelation; using HStation.WinFrmUI.Xhs; namespace HStation.WinFrmUI { public partial class TankSingleMatchingCtrl : DevExpress.XtraEditors.XtraUserControl { public TankSingleMatchingCtrl() { InitializeComponent(); this.gridView1.SetNormalView(); this.gridView3.SetNormalView(); } public class PhartViewModel { public long ID { get; set; } public string OtherName { get; set; } public int Importance { get; set; } public int SortCode { get; set; } /// /// 容积曲线 /// public string VolCurve { get; set; } /// /// 型号ID /// public long MainID { get; set; } } public class CurvieInfo { public long? Dbid { get; set; } public long? Curveid { get; set; } // public Vmo.XhsTankMainPhartMappingExtensions Curveinfo { get; set; } } private List _allBindingList = null; private BLL.AssetsTankMain _TankBll = null; private List _allPhartList = null; private readonly Lazy _bll_ex = new(); private HydroTankMatchingViewModel _pumpMatchingViewModel; private List _currentCurvePoint; public async void SetBindingData(HydroTankMatchingViewModel TankMatchingViewModel) { _pumpMatchingViewModel = TankMatchingViewModel; _allBindingList = new List(); _TankBll = new BLL.AssetsTankMain(); var allAssetsPumpMain = await _TankBll.GetAll(); if (allAssetsPumpMain != null) { foreach (var Main in allAssetsPumpMain) { _allBindingList.Add(new TankSingleMatchingViewModel(Main)); } } this.TankSingleMatchingViewModelBindingSource.DataSource = _allBindingList; this.searchControl1.Text = _pumpMatchingViewModel.ModelType; for (int i = 0; i < _allBindingList.Count; i++) { if (long.TryParse(TankMatchingViewModel.DbId, out long dbID)) { if (_allBindingList[i].ID == dbID) { this.gridView3.FocusedRowHandle = i; } } } _currentCurvePoint = new List(); } //阀门型号列表选择项切换事件 private async void gridView2_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) { _allPhartList = new List(); var vm = this.gridView3.GetCurrentViewModel(_allBindingList); if (vm != null) { _pumpMatchingViewModel.MatchingDbId = vm.ID.ToString(); _pumpMatchingViewModel.MatchingModelType = vm.Name.ToString(); _pumpMatchingViewModel.MatchingMaxLevel = vm.MaxLevel; _pumpMatchingViewModel.MatchingMinLevel = vm.MinLevel; _pumpMatchingViewModel.MatchingDN = vm.DN; _pumpMatchingViewModel.MatchingMinVol = vm.MinVol; var list = await _bll_ex.Value.GetByMainID(vm.ID); if (list != null && list.Any()) { foreach (var item in list) { _allPhartList.Add(new PhartViewModel { ID = item.ID, VolCurve = item.VolCurve, MainID = item.MainID,OtherName="默认曲线",Importance=1 }); } } } if (_pumpMatchingViewModel.MatchingCurveDbId != null) { for (int i = 0; i < _allPhartList.Count; i++) { if (_allBindingList[i].ID.ToString() == _pumpMatchingViewModel.MatchingCurveDbId) { gridView1.FocusedRowHandle = i; } } } this.gridControl1.DataSource = _allPhartList; this.gridView1.FocusInvalidRow(); } //查看曲线 private async void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) { if (e.Column == this.ColShowChart) { var vm = this.gridView1.GetCurrentViewModel(_allPhartList); var vmo = await _bll_ex.Value.GetByID(vm.ID); if (vmo != null) { var dlg = new TankChartShowDlg(); dlg.InitChart(vmo.VolCurve); dlg.ShowDialog(); } return; } } private async void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) { var vm = this.gridView1.GetCurrentViewModel(_allPhartList); _currentCurvePoint.Clear(); if (vm == null) return; var vmo = await _bll_ex.Value.GetByID(vm.ID); if (vmo != null) { _pumpMatchingViewModel.MatchingCurveDbId = vm.MainID.ToString(); var pt_list = Yw.JsonHelper.Json2Object>(vm.VolCurve); _pumpMatchingViewModel.MatchingVolCurve = pt_list; } } } }