2012-05-18 4 views
1

У меня есть приложение Silverlight, и я пытаюсь сделать каждый шаг мастера в файлах XAML, а не жестко закодированных C#.Создание мастера в Silverlight + Xaml

Проблема в том, что я не понимаю, как я буду переключаться между ними после нажатия следующей кнопки на каждом экране.

Каков наилучший способ для этого? Я видел несколько учебных пособий в Интернете о динамическом загрузке XAML, но ни один из них не работает со мной:/

ответ

1

Используйте ChildWindow в качестве родительского окна. Затем создайте несколько UserControls, которые будут помещены в содержимое родительского окна. В исходном коде родительского окна загрузите элементы управления пользователя в список и установите видимость «Свернутый» для всех из них, но первый. Когда пользователь нажимает кнопки Next/Prev, вытащите соответствующий UserControl из списка (следите за текущим индексом) и сделайте его «Видимым», в то время как текущий элемент управления «Collapsed».

Весь ваш навигационный код будет находиться в родительском окне, но родительское окно не будет касаться содержимого самих шагов мастера.

Каждый UserControl может быть закодирован в XAML как отдельный элемент управления, поэтому вы все равно сохраняете разделение элемента управления от логики навигации мастеров.

Затем вы можете создать тип класса, который будет содержать все параметры для различных элементов управления мастером. Передайте ссылку на экземпляр объекта на каждый из элементов управления для их обновления. Когда вы дойдете до конца мастера, ваш объект опции должен поддерживать состояние всех шагов мастера, а родительское окно может вернуть это приложение.

1

Я предлагаю посмотреть на Silverlight Navigation Framework. Он позволяет использовать «URL» для навигации между «страницами» (которые являются вашими пользовательскими элементами управления XAML). Кроме того, пользователи также могут использовать кнопки «назад» и «вперед» в браузере, которые могут быть или не быть чем-то, что вы хотите разрешить.

Существует шаблон VS 2010, когда вы выбираете New Project, Silverlight, «Приложение для навигации Silverlight», которое поможет вам начать работу.