У меня есть мастер настройки, который имеет всю логику за страницами внутри одной формы, MainWindow.
Я хочу создать отдельные элементы UserControl для каждого шага установки, а также получить доступ к некоторым элементам управления из формы MainWindow (например, кнопки «Следующая страница» и «Назад»).
Итак, допустим, я хочу отключить / включить кнопки навигации из моего UserControl.
Мое решение:
Форма главного окна:
public static void SetNavigationButtons(MainWindow mainwindow, bool SetBackPageButton, bool SetNextPageButton)
{
mainwindow.NextPageButton.Enabled = NextPageBtn;
mainwindow.BackPageButton.Enabled = BackPageBtn;
}
UserControl:
private void EnableNavButtons()
{
MainWindow.SetNavigationButtons(ParentForm as MainWindow, true, true);
}
Я также думал о EventHandlers:
UserControl:
public event EventHandler EnableNextPageButton;
public event EventHandler DisableNextPageButton;
public event EventHandler EnableBackPageButton;
public event EventHandler DisableBackPageButton;
private void EnableNavButtons()
{
if (this.EnableNextPageButton != null)
this.EnableNextPageButton(this, new EventArgs());
if (this.EnableBackPageButton != null)
this.EnableBackPageButton(this, new EventArgs());
}
И ловить события внутри моей формы MainWindow.
Может кто-нибудь предложить лучшее решение?