Добавление значения перечисления C # в URI навигации - PullRequest
0 голосов
/ 29 июля 2010

Я занимаюсь разработкой приложения для Windows Phone. Я задаю вопрос здесь, потому что думаю, что вопрос серебряного света.

Я определил следующие URI навигации в 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
}

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

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

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

Спасибо.

1 Ответ

2 голосов
/ 14 декабря 2010

Этого легко достичь, передав значение перечисления в виде строки и затем проанализировав его в перечислении в событии 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`...
}
...