private void SetPage() { ClearNotify(); InstallerPageDescriptor page = _pages[CurrentPageIndex]; if (page.IsFinishPage) { _dataModel.ShowCancel = false; _dataModel.ShowNext = false; _dataModel.ShowFinish = true; } else { _dataModel.ShowCancel = true; _dataModel.ShowNext = true; _dataModel.ShowFinish = false; } if (CurrentPageIndex > 0) { _dataModel.ShowPrevious = true; } else { _dataModel.ShowPrevious = false; } object control = Activator.CreateInstance(page.Type, new object[] { _dataModel, this }); if (control == null) { throw new Exception("Could not create wizard page!"); } _contentControl.Children.Clear(); _contentControl.Children.Add((UIElement)control); if (!string.IsNullOrWhiteSpace(page.Name)) { _dataModel.ShowDescription = true; _dataModel.Page.PageName = page.Name; _dataModel.Page.PageDescription = page.Description; } else { _dataModel.ShowDescription = false; _dataModel.Page.PageName = _dataModel.Page.PageDescription = null; } _dataModel.Progress.CurrentPage = page.Name; }
/// <summary> /// Removes a page from the page list. /// </summary> /// <param name="pageType">The type of page to remove.</param> public void RemovePage(Type pageType) { InstallerPageDescriptor page = _pages .Where(x => x.Type == pageType) .First(); _pages.Remove(page); if (!string.IsNullOrWhiteSpace(page.Name)) { _dataModel.Progress.Pages.Remove(page.Name); } }
/// <summary> /// Jumps to a specific page in the page list. /// </summary> /// <param name="pageType">The type of page to jump to.</param> public void JumpToPage(Type pageType) { InstallerPageDescriptor findPage = _pages .Where(x => x.Type == pageType) .FirstOrDefault(); if (findPage == null) { return; } CurrentPageIndex = _pages.IndexOf(findPage); SetPage(); }