Я работаю над приложением для телефона .NET, где у меня есть список элементов в памяти, которые отображаются для пользователя. Когда пользователь нажимает на элемент в пользовательском интерфейсе, он будет переведен в представление «подробности» для этого элемента во втором представлении. В настоящее время я использую свойство identity в своем классе для ссылки на уникальные элементы в списке, но мне интересно, есть ли лучший способ.
Я использую System.Windows.Navigation
для настройки UriMappings
примерно так:
<nav:UriMapping Uri="/Items/{itemId}"
MappedUri="/Views/Items.xaml?itemId={itemID}" />
Затем я использую NavigationService
для навигации следующим образом:
NavigationService.Navigate(new Uri("/Items/" + item.id.ToString(),
UriKind.Relative));
Все это прекрасно работает, но я не знаю, что мне нравится включать столбец идентификаторов для моего Item
класса, чтобы иметь уникальный идентификатор строки для передачи в строку запроса MappedUri
. Мой элемент управления пользовательского интерфейса, который показывает список, дает мне базовый объект Item
в событии SelectionChanged
, поэтому мне интересно, есть ли способ «сопоставить» этот объект Item
с уникальным строковым значением с соответствующей ссылкой в списке. Если бы я мог предоставить простую ссылку на объект для службы навигации, это было бы легко, но я не уверен, как это сделать со строковым значением. Для этого ли GetHashCode()
, и если да, то как мне правильно его использовать?