lixiaojun
2024-10-18 217756094e1f22763edf2b18d3723403786c82fc
WinFrmUI/Yw.WinFrmUI.Hydro.Core/11-prefix/03-nozzle/SetNozzleCalcuPrefixListCtrl.cs
@@ -1,4 +1,5 @@
using DevExpress.XtraEditors;
using DevExpress.Utils.Layout;
using DevExpress.XtraEditors;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -18,38 +19,156 @@
            InitializeComponent();
        }
        public bool AllowPrev { get { return true; } }
        public bool AllowNext { get { return true; } }
        public bool AllowCancel { get { return true; } }
        public bool AllowComplete { get { return true; } }
        /// <summary>
        /// 页面状态发生改变
        /// </summary>
        public event Action PageStateChangedEvent;
        public void InitialPage(SetHydroCalcuPrefixViewModel t)
        {
        private SetHydroCalcuPrefixViewModel _vm = null;
        private List<SetNozzleCalcuPrefixCtrl> _allCalcuPrefixCtrlList = null;
        /// <summary>
        /// 初始化页面
        /// </summary>
        public void InitialPage(SetHydroCalcuPrefixViewModel vm)
        {
            _vm = vm;
            InitialControls();
        }
        //初始化控件
        private void InitialControls()
        {
            if (_vm == null)
            {
                return;
            }
            if (_allCalcuPrefixCtrlList == null)
            {
                _allCalcuPrefixCtrlList = new List<SetNozzleCalcuPrefixCtrl>();
                this.tabPanelCore.Columns.Add(new TablePanelColumn(TablePanelEntityStyle.Relative, 55F));
                if (_vm.HydroInfo.Nozzles != null && _vm.HydroInfo.Nozzles.Count > 0)
                {
                    for (int i = 0; i < _vm.HydroInfo.Nozzles.Count; i++)
                    {
                        this.tabPanelCore.Rows.Add(new TablePanelRow(TablePanelEntityStyle.AutoSize, 150F));
                        var ctrl = new SetNozzleCalcuPrefixCtrl();
                        this.tabPanelCore.Controls.Add(ctrl);
                        this.tabPanelCore.SetCell(ctrl, i, 0);
                    }
                    this.tabPanelCore.Rows.Add(new TablePanelRow(TablePanelEntityStyle.AutoSize, 150F));
                }
            }
            else
            {
                if (_vm.HydroInfo.Nozzles == null || _vm.HydroInfo.Nozzles.Count != _allCalcuPrefixCtrlList.Count)
                {
                    return;
                }
                for (int i = 0; i < _allCalcuPrefixCtrlList.Count; i++)
                {
                    _allCalcuPrefixCtrlList[i].SetBindingData(_vm.HydroInfo.Nozzles[i]);
                }
            }
        }
        //更新页面
        private void UpdatePage()
        {
            if (_allCalcuPrefixCtrlList == null)
            {
                return;
            }
            _allCalcuPrefixCtrlList.ForEach(x => x.UpdateBindingData());
        }
        /// <summary>
        /// 允许上一步
        /// </summary>
        public bool AllowPrev
        {
            get
            {
                if (_vm == null)
                {
                    return false;
                }
                if (_vm.FirstPage == this)
                {
                    return false;
                }
                return true;
            }
        }
        /// <summary>
        /// 允许上一步
        /// </summary>
        public bool AllowNext
        {
            get
            {
                if (_vm == null)
                {
                    return false;
                }
                if (_vm.LastPage == this)
                {
                    return false;
                }
                return true;
            }
        }
        /// <summary>
        /// 允许取消
        /// </summary>
        public bool AllowCancel
        {
            get { return true; }
        }
        /// <summary>
        /// 允许完成
        /// </summary>
        public bool AllowComplete
        {
            get { return true; }
        }
        /// <summary>
        /// 能否上一步
        /// </summary>
        public bool CanPrev()
        {
            return true;
        }
        /// <summary>
        /// 能否下一步
        /// </summary>
        public bool CanNext()
        {
            UpdatePage();
            return true;
        }
        /// <summary>
        /// 能否取消
        /// </summary>
        public bool CanCancel()
        {
            return true;
        }
        /// <summary>
        /// 能否完成
        /// </summary>
        public bool CanComplete()
        {
            UpdatePage();
            return true;
        }
    }