2013-07-08 3 views
0

Я узнал о библиотеке композитной аппликации и столкнулся с вопросом: возможно ли создание многостраничных приложений с использованием CAL?Многостраничное приложение в CAL

Все примеры, которые я видел, используют одну страницу с определенными регионами.

Может быть использовано несколько оболочек? - Если это так против CAL methodolgies, чтобы сделать это?

Кроме того, это нормально, чтобы создавать многостраничные приложения, используя CAL или это исключительно приложение для страниц в стиле xlp?

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

Благодаря

+0

Никто не хочет отвечать на это ?? –

ответ

0

Prism можно использовать для приложений многостраничных.

Один из способов описан Prism developer guide. Быстрые старты также предоставляются, чтобы помочь разработчику.

Однако я нахожу этот путь довольно тяжелым для реализации. И когда они сталкиваются с вопросом нескольких пейджинга с Prism, я обычно предпочитаю более простое решение:

  • Во-первых, в доспехах, я определяю области внутри ContentControls в пределах одной сетки, так что эти ContentControls будет «на той же странице ". Сетка определяет границы страницы, и вы можете поместить ее на все окно, если хотите.
  • Затем у меня есть экземпляр NavigationManager, который будет отвечать за загрузку DataContext каждого ContentControl/Region of Shell в нужное время. В каждый момент времени один ContentControl заполняет DataContext, а все остальные - null.
  • Наконец, я вставляю в момент инициализации модуля в каждом регионе вид, который заполнит его, благодаря RegisterViewWithRegion. Это важно.

    <UserControl> 
        <UserControl.Resources> 
         <DataTemplate DataType="{x:Type my:ViewModel}"> 
          ... 
         </DataTemplate> 
        </UserControl.Resources> 
        <ContentControl Content="{Binding }" /> 
    </UserControl> 
    

Как это, на ваш взгляд, не будет отображаться, если DataContext имеет нулевое значение, таким образом, навигация. Чтобы вызвать методы навигации, вы можете использовать globally available commands, как описано в руководстве разработчика. Это позволяет вам привязать команды навигационной кнопки непосредственно к команде навигации из любого модуля.

Смежные вопросы