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