×
Namespaces

Variants
Actions

UriMapping的用法

From Nokia Developer Wiki
Jump to: navigation, search
WP Metro Icon UI.png
SignpostIcon XAML 40.png
SignpostIcon WP7 70px.png
Article Metadata

兼容于
文章
关键词: navigation, NavigationService
Xinx Gong 在 29 Oct 2012 创建
最后由 hamishwillee 在 03 Jul 2013 编辑

介绍

随着应用程序的扩大,为了使项目的结构易于理解,您可能需要使用文件夹或者子文件夹。这样的话会导致页面之间的导航变得十分脆弱。只要你移动了一个页面,就需要保证更新所有的导航。这样很容易由于遗漏或疏忽导致导航到错误的URI,在Windows phone中,系统提供了一个方法,允许使用一个URI映射将一个简短的URI转换为项目中XAML页面的完整路径。

下面是一个示例。

public App()
{
...
UriMapper mapper = new UriMapper();
mapper.UriMappings.Add(CreateUriMapping("City", "/CityPage.xaml"));
}
 
private UriMapping CreateUriMapping(string uriAsString, string mappedUriAsString)
{
return new UriMapping()
{
Uri = new Uri(uriAsString, UriKind.Relative),
MappedUri = new Uri(mappedUriAsString, UriKind.Relative)
};
}

上面示例中创建了一个UriMapping实例,将“City”映射到“/CityPage.xaml”。这样在应用程序中用下面的语句就可以导航到“/CityPage.xaml”页面。

this.NavigationService.Navigate(new Uri("City", UriKind.Relative));

另外,在mapping的URI中可以使用占位符来做些更复杂的事。如:

mapper.UriMappings.Add(CreateUriMapping(
"MyPage{page}",
"/MyPages/MyPage{page}.xaml"));

上面的例子中,任何与MyPage{page}模式相匹配的URI都会映射到/MyPages/MyPage{page}.xaml。这样你就可以用下面的语句导航到“/MyPages/MyPage1.xaml”。

this.NavigationService.Navigate(new Uri("MyPage1", UriKind.Relative));
This page was last modified on 3 July 2013, at 06:31.
151 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×