CAL中的多页应用程序

时间:2013-07-08 12:07:21

标签: wpf silverlight prism cal

我一直在学习复合应用程序库,并遇到了一个问题:是否可以使用CAL构建多页面应用程序?

我看到的所有示例都使用了一个定义了区域的单页。

可以使用多个shell这样的东西吗? - 如果是这样反对CAL方法论呢?

此外,使用CAL构建多页面应用程序是否可以,或者只是单独的页面应用程序?

此外,还可以使用多个shell或者多个Bootstrappers来展示正确的方法。

谢谢

1 个答案:

答案 0 :(得分:0)

Prism可用于多页应用程序。

Prism developer guide描述了一种方式。还提供了快速入门以帮助开发人员。

但是我发现这种方式很难实施。当遇到使用Prism进行多页面分页的问题时,我通常更喜欢更简单的解决方案:

  • 首先,在Shell中,我在ContentControls中定义单个Grid中的区域,以便这些ContentControls将“在同一页面上”。网格定义页面的边界,如果需要,可以将其扩展到整个窗口。
  • 然后,我有一个NavigationManager实例,负责在适当的时间加载Shell的每个ContentControl / Region的DataContext。每次,单个ContentControl都填充了DataContext,而其他所有内容都为null。
  • 最后,由于RegisterViewWithRegion,我在每个区域的模块初始化时注入将填充它的视图。一件重要的事情就是这个。

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

像这样,如果DataContext为null,则不会显示您的视图,因此导航。 要调用导航方法,您可以使用开发人员指南中所述的globally available commands。这允许您将导航按钮命令直接绑定到任何模块的导航命令。