×
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.
139 page views in the last 30 days.