【问题标题】:WinPhone Page Uri from Type?WinPhone Page Uri 来自 Type?
【发布时间】:2013-03-12 15:34:52
【问题描述】:

给定一个PhoneApplicationPage 子类型,有没有办法(除了依赖约定)找出它的内部uri?

换句话说,我想打电话给GetUri<MyPage>(),然后回复/Views/MyPage.xaml之类的东西。

【问题讨论】:

  • 当然,如果每种类型的页面超过 1 页,那么这个方案无论如何都行不通,除非你得到一组页面。 UriMapper 是否满足您的需求 - see link here
  • 一种页面类型怎么可能有多个uri(忽略查询字符串)?
  • 好点...最近过多关注 DI 框架和对象范围。

标签: silverlight windows-phone-7 xaml navigation


【解决方案1】:

没有办法做到这一点。没有指向将 XAML 文件名与类型相关联的元数据。文件名本质上是运行时识别要加载的 BAML 的关键,它从该 BAML 中知道类型。往另一个方向走会非常困难。

没有阅读 BAML 资源流并自己弄清楚映射(这在 Silverlight 中不容易完成,即使可以这样做也会降低性能)我看不到这样做的方法。

【讨论】:

  • 我相信你是对的,但为了以防万一,我会继续提问。
【解决方案2】:

是否可以做类似的事情:

C# Silverlight 3 - Programmatically Navigate Between Pages?

他在哪里定义导航映射。今晚我将在我的应用程序中尝试这个,我目前只针对其 URI 维护一个页面类型的静态字典;不幸的是,这都是手动的。

【讨论】:

  • UriMapper 仍然需要我告诉 Silverlight 每个页面的 uri 是什么。我希望能够仅在导航时按类型引用我的页面,这样我就可以移动内容而无需更新映射。
  • 确实如此,但就像我目前的解决方案一样 - 您只需在一个地方指定它。
  • 是的,我也是这么做的。绝对是无处不在的魔法 uri 字符串的一步,但我不禁想到必须有一种方法来反映和发现 uri...
【解决方案3】:

您必须将特定页面的 Uri 存储在自定义类中,例如使用字典或使用 UriMapper。也许 UriMapper 正是您正在寻找的。​​p>

这里是如何在 Windows Phone http://www.windowsphonegeek.com/articles/All-about-UriMapping-in-WP7 中使用它。

【讨论】:

    猜你喜欢
    • 2021-07-31
    • 1970-01-01
    • 2011-05-30
    • 2023-01-30
    • 2021-08-24
    • 2011-04-14
    • 2012-09-16
    • 1970-01-01
    • 2016-12-28
    相关资源
    最近更新 更多