namespace HStation.WinFrmUI { /// /// 导入项目管理 /// public class ImportXhsProjectManager : IWizardManager { /// /// 初始化管理器 /// /// 步骤页面数组 public void InitialManager(IWizardPage[] pages) { _pages = pages; if (_pages != null && _pages.Length > 0) { _selectedIndex = 0; this.SelectedPageChangedEvent?.Invoke(this.SelectedPage, this.SelectedIndex); this.SelectedPage.InitialPage(_vm); } } private IWizardPage[] _pages;//步骤页面数组 private readonly ImportXhsProjectViewModel _vm = new ImportXhsProjectViewModel(); /// /// 选择页面改变事件 /// public event Action, int> SelectedPageChangedEvent; public event Action, int> SelectedPageStateChangedEvent; /// /// 选择页面 /// public IWizardPage SelectedPage { get { if (_pages == null || _pages.Length < 1) { return default; } return _pages[SelectedIndex]; } } /// /// 选择索引 /// public int SelectedIndex { get { return _selectedIndex; } } private int _selectedIndex; /// /// 上一步 /// public bool Prev() { if (_pages == null || _pages.Length < 1) { return false; } if (this.SelectedPage.CanPrev()) { --_selectedIndex; this.SelectedPageChangedEvent?.Invoke(this.SelectedPage, this.SelectedIndex); this.SelectedPage.InitialPage(_vm); return true; } return false; } /// /// 下一步 /// public bool Next() { if (_pages == null || _pages.Length < 1) { return false; } if (this.SelectedPage.CanNext()) { ++_selectedIndex; this.SelectedPageChangedEvent?.Invoke(this.SelectedPage, this.SelectedIndex); this.SelectedPage.InitialPage(_vm); return true; } return false; } /// /// 取消 /// public bool Cancel() { if (_pages == null || _pages.Length < 1) { return false; } if (this.SelectedPage.CanCancel()) { return true; } return false; } /// /// 完成 /// public bool Complete() { if (_pages == null || _pages.Length < 1) { return false; } if (this.SelectedPage.CanComplete()) { return true; } return false; } } }