namespace HStation.WinFrmUI
|
{
|
/// <summary>
|
/// 导入项目管理
|
/// </summary>
|
public class ImportXhsProjectManager : IWizardManager<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;
|
|
/// <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;
|
}
|
|
|
|
|
|
|
}
|
}
|