Пользовательский мастер управления в WPF для добавления и удаления пользовательских элементов управления? - PullRequest
1 голос
/ 24 февраля 2011

Как лучше всего создать элемент управления Wizard в WPF. Мой таков; сначала у меня есть Wizard Controller UserControl, который содержит две кнопки, то есть Back и Next, затем я начинаю с двух других UserControls с формами, которые пользователи могут заполнять, и нажимает следующий шаг к следующей форме и т. д. знать, как я мог вставить этот пользовательский контроль и проверить мой текущий объект перед переходом к следующей форме. Что я могу использовать для получения следующих и предыдущих событий или есть лучшее решение для этого?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2011

Вас может заинтересовать EmailClient (ViewModel) пример приложения WPF Application Framework (WAF) . В нем показано, как создать мастер с шаблоном Model-View-ViewModel, и он содержит логику проверки, которая отключает кнопку «Далее», когда ввод пользователя недопустим.

0 голосов
/ 24 февраля 2011

Я все еще изучаю WPF и работаю над проектом WinForm, так что извините за любые ссылки WinForm в этом.

Элемент управления мастера может содержать ссылку на каждый пользовательский элемент управления, который будет отображаться мастером.Мастер добавит все эти элементы управления к себе controls.add(_userControl1).Каждому элементу управления присвоено значение false.

Мастер также может содержать закрытый enum со списком имен элементов управления, т. Е.

private enum CurrentControl
{
    _MyControl1,
    _MyControl2,
    _MyControl3
}

Элемент управления мастера сохраняет ссылку натекущий отображаемый элемент управления CurrentControl _currentControl = CurrentControl._MyControl1; Имеет метод UpdateDisplay (), который на основе _currentControl сделает видимым только этот один элемент управления.

Затем, когда вы нажимаете кнопки «Предыдущая / Следующая», он обновляет переменную _currentControl на основе своейтекущее значение вызывает UpdateDisplay () для отображения элемента управления enext.

Таким образом, у вас есть ссылка на все ваши пользовательские элементы управления (и, следовательно, на данные, которые они содержат), и, таким образом, вы можете проверить содержимое, и ваш мастер сможетпереходите назад и вперед через них с помощью кнопок мастера, а логика в мастере показывает и скрывает элементы управления.

...