【问题标题】:Silverlight: how to navigate to page in class librarySilverlight:如何导航到类库中的页面
【发布时间】:2010-07-13 06:02:44
【问题描述】:

我有一堆可重用的页面,我想将它们放入类库中。所以我编辑了我的 MainPage.xml('Moe.Tactical.Generic.Silverlight' 是类库的名称)

<uriMapper:UriMapper>
  <uriMapper:UriMapping Uri="/Views/{path}" MappedUri="/Moe.Tactical.Generic.Silverlight;component/Views/{path}" />
  <uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/>
</uriMapper:UriMapper>

然后我在代码中分配 url,但出现错误:找不到页面:“/Moe.Tactical.Generic.Silverlight;component/Views/GenericView?page=Maintanance”

我通过分配 Uri

return new Uri(@"/" + pageType + "?page=" + page.Name, UriKind.Relative);

我错过了什么吗?

【问题讨论】:

    标签: silverlight


    【解决方案1】:

    抱歉——我的第一个答案不适用。在您的情况下,您的映射如下所示:

      <uriMapper:UriMapping Uri="/Views/{path}" MappedUri="/Moe.Tactical.Generic.Silverlight;component/Views/{path}" />
    

    您尝试导航到的 Uri 与此模式不匹配。您最终会得到类似:“/MyPageType?page=SomeName”,它与“/Views/{path}”不匹配。要使您的 Uri 与模式匹配,请考虑以下内容:

    return new Uri(@"/Views/" + pageType + ".xaml?page=" + page.Name, UriKind.Relative); 
    

    请注意与您的问题中的示例相比,Uri 中额外的“Views/”和“.xaml”。

    【讨论】:

    • 所以现在我得到了 uri:/Views/Moe.Tactical.Generic.Silverlight;component/Views/GenericView.xaml?page=Maintanance... 仍然没有骰子
    • 您现在的映射/导航 uris 是什么?看起来你在开始时有一个额外的“/Views”。映射后应该只是“/Moe.Tactical.Generic.Silverlight;component/Views/GenericView.xaml?page=Maintenance”。
    • 是的,这是您在上面的评论 - “注意额外的视图/”,但是我玩了一些,包括删除额外的视图,但我仍然无法导航
    • 程序集是否包含您的应用程序引用的页面,或者您是否动态加载它(通过 MEF、Prism 或您自己的解决方案)?您现在遇到的错误是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多