Все в WPF:
Разрабатывая приложение мастера, пользователь должен ответить на многие простые вопросы, прежде чем принесено к главному приложению. Главное приложение затем предварительно заполняется информацией, полученной из мастера.
Я запустил с Окна, к которому я затем запланировал добавить usercontrols. Главное окно имело бы пользовательский элемент управления в первой строке, затем кнопки Next и Previous для управления перемещением между средствами управления во второй строке. Таким образом, я мог легко управлять логикой для переключения между экранами как:
WizardControl1.IsVisible = false;
WizardControl2.IsVisible = true;
Но по некоторым причинам, пользовательские элементы управления не имеют метода set для IsVisible. Ура.
Таким образом я думал, что буду просто использовать отдельные окна для каждого раздела мастера. Проблема с этим подходом состоит в том, что теперь при продвижении между, окно открывается в случайных положениях, и путем продвижения через мастер со следующим, следующее окно открывается случайным образом, который действительно отвлекает и разбивает.
Таким образом, как я могу разработать мастер правильно? Я не добираюсь, почему это настолько твердо... не точно аэрокосмические исследования... заменяющие текст и средства управления и хранящие вход после нажатия следующего/предыдущего!
Спасибо
Я, вероятно, имел впредь под этом, используя селекторы связывания и шаблона данных. Пусть форма мастера связывается со классом «Wizarddata», который обнажает список базовых классов «Волшебное страние».
Класс Wizarddata может выставлять свойства, определяющие правильную информацию о формах, и отобразить элемент управления для главной страницы, который использует селектор шаблона для определения правильного управления для отображения в зависимости от фактического типа конкретной страницы мастера.
Это звучит как больше работы, чем это, действительно. Он также дает вам преимущество хорошего разделения между кодом и UI (все «работа» выполняется классами Wizarddata и WizardPage) и возможность тестирования логики независимой от интерфейса UI.
Это также очень WPF / MVVM-способ приближения к проблеме.
Проверьте эту ссылку: http://www.codeproject.com/kb/wpf/internationaledwizard.aspx Это статья о мастере здания в WPF Джош Смитом, это кажется хорошим узором. Я нашел это полезно для меня, надеюсь, ты тоже.
Я узнаю, что это не напрямую решает ваш вопрос, но я думал, что упомяну об этом как возможную альтернативу. Я использовал контроль волшебника Actipro с довольно хорошими результатами, и когда мне нужна поддержка, они были очень отзывчивы. Я не связан с ними любым способом; Мне просто нравится писать сантехника, чтобы управлять волшебником.