2010-07-29 2 views
0

Я разрабатываю приложение для Windows Phone. Я задаю этот вопрос, потому что я думаю, что это вопрос серебристого цвета.Добавление значения перечисления C# в URI навигации

Я определил следующие навигаций URIs на App.xaml:

<!-- Navigation links--> 
<nav:UriMapper x:Name="UriMapper"> 
    <nav:UriMapper.UriMappings> 
     <nav:UriMapping Uri="/Destination" MappedUri="/Views/Tourism/Common.xaml?Type=1"/> 
     <nav:UriMapping Uri="/Points" MappedUri="/Views/Tourism/Common.xaml?Type=2"/> 
    </nav:UriMapper.UriMappings> 
</nav:UriMapper> 

А следующий C# перечисление:

public enum TourismItemType 
{ 
    Destination = 1, 
    PointOfInterest = 2, 
    Content = 3 
} 

Я хочу изменить '' на MappedUri =» /Views/Tourism/Common.xaml?Type= "со значением, полученным от TourismItemType.Destination.

Я думаю, я могу сделать это:

И сделать это программно, но есть ли способ, чтобы получить доступ к значению, представленное TourismType.Destination на XAML?

Спасибо.

ответ

2

Этого можно легко достичь, передав значение перечисления в виде строки, а затем разобрав его в перечисление в событии OnNavigatedTo.

MappedUri="/Views/Tourism/Common.xaml?Type=PointOfInterest" 

, а затем в common.xaml:

string selectedType = ""; 
if (NavigationContext.QueryString.TryGetValue("Type", out selectedType)) 
{ 
    var tit = Enum.Parse(typeof (TourismItemType), selectedType, true); 

    // do something with `tit`... 
} 
Смежные вопросы