duheng
2024-10-09 e39f5a762c3401ae38b0c064b10bd4c30effb6e4
WinFrmUI/Yw.WinFrmUI.Core/08-wizard/WizardManager.cs
@@ -5,6 +5,14 @@
    /// </summary>
    public class WizardManager<T> : IWizardManager<T> where T : class, new()
    {
        /// <summary>
        ///
        /// </summary>
        public WizardManager(T t)
        {
            _vm = t;
        }
        #region 事件
@@ -38,13 +46,13 @@
                    {
                        if (page == this.SelectedPage)
                        {
                            this.SelectedPageStateChangedEvent?.Invoke(this.SelectedPage, this.SelectedIndex);
                            TriggerSelectedPageStateChangedEvent();
                        }
                    };
                }
                _selectedIndex = 0;
                this.SelectedPageChangedEvent?.Invoke(this.SelectedPage, this.SelectedIndex);
                this.SelectedPage.InitialPage(_vm);
                TriggerSelectedPageChangedEvent();
            }
            else
            {
@@ -65,7 +73,7 @@
        /// <summary>
        /// vm对象
        /// </summary>
        protected readonly T _vm = new();
        protected readonly T _vm = null;
        #endregion
@@ -119,8 +127,8 @@
            if (this.SelectedPage.CanPrev())
            {
                --_selectedIndex;
                this.SelectedPageChangedEvent?.Invoke(this.SelectedPage, this.SelectedIndex);
                this.SelectedPage.InitialPage(_vm);
                TriggerSelectedPageChangedEvent();
                return true;
            }
            return false;
@@ -142,8 +150,8 @@
            if (this.SelectedPage.CanNext())
            {
                ++_selectedIndex;
                this.SelectedPageChangedEvent?.Invoke(this.SelectedPage, this.SelectedIndex);
                this.SelectedPage.InitialPage(_vm);
                TriggerSelectedPageChangedEvent();
                return true;
            }
            return false;
@@ -191,6 +199,26 @@
        #endregion
        #region 方法
        /// <summary>
        /// 触发选择页面改变事件
        /// </summary>
        protected void TriggerSelectedPageChangedEvent()
        {
            this.SelectedPageChangedEvent?.Invoke(this.SelectedPage, this.SelectedIndex);
        }
        /// <summary>
        /// 触发选择页面状态改变事件
        /// </summary>
        protected void TriggerSelectedPageStateChangedEvent()
        {
            this.SelectedPageStateChangedEvent?.Invoke(this.SelectedPage, this.SelectedIndex);
        }
        #endregion
    }
}