UriMapping的用法
文章信息
介绍
随着应用程序的扩大,为了使项目的结构易于理解,您可能需要使用文件夹或者子文件夹。这样的话会导致页面之间的导航变得十分脆弱。只要你移动了一个页面,就需要保证更新所有的导航。这样很容易由于遗漏或疏忽导致导航到错误的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));

