У меня есть сводная страница с одним фиксированным сводным элементом и, в зависимости от данных, динамическим числом дополнительных сводных элементов. Фиксированный сводный элемент содержит список гиперссылок созданных новых сводных элементов, и идея состоит в том, чтобы щелкнуть любую из ссылок и перейти к этому сводному элементу.
Это будет выглядеть примерно так:
FixedItem | DynamicItem1 | DynamicItem2
ссылка: DynamicItem1
ссылка: DynamicItem2
Проблема, с которой я сталкиваюсь, заключается в щелчке по гиперссылке, он не приводит меня к соответствующему основному элементу, а вместо этого приводит меня к сводной странице без динамических сводных элементов. Я использую следующий код для навигации:
hyperlink.NavigateUri = new Uri("/MainPage.xaml?name=" + p.name, UriKind.Relative);
где p.name - это имя основного элемента. Я не уверен, что это правильный синтаксис, но что сбивает с толку, так это то, что все созданные сводные элементы теряются, оставляя только фиксированный элемент - как если бы он открывал новый экземпляр сводной страницы.
Затем в OnNavigatedTo я попробовал следующее:
if (NavigationContext.QueryString.ContainsKey("name"))
{
// URI is '/page?name=PivotItemToSelect'.
string selectedPivotItem = e.Uri.Query.Split('=').Last();
// Match PivotItemToSelect with the PivotItem's Name.
PivotItem pivotItemToShow = pivot.Items.Cast<PivotItem>().Single(i => i.Name == selectedPivotItem);
pivot.SelectedItem = pivotItemToShow;
base.OnNavigatedTo(e);
}
В первой строке я получаю исключение, что эту операцию нельзя выполнить для «относительного» URI. Любой другой способ, которым я мог бы получить эту информацию?
Если я изменю имя сводного элемента на число, скажем i, и передам его i в качестве индекса, я получу следующий код для работы в качестве метода _click для кнопки гиперссылки - но при реальном использовании имя, скорее всего, будет текстовая строка:
pivot.SelectedIndex = int.Parse(i);
Я не уверен, насколько я сошел с колеи, и был бы признателен за любые указатели в правильном направлении.
Спасибо.