private void PersonalInfoList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
System.Collections.IList list = e.AddedItems;
if (e.AddedItems.Count == 1)
{
IEnumerable<Category> categs = list.Cast<Category>();
Category em = categs.ElementAt<Category>(0);
int id = em.id;
int categoryid = em.categoryid;
string subcategoryname = em.subcategname;
NavigationService.Navigate(new Uri(String.Format("/SubCategories.xaml?id=" + id + "&categoryid=" + categoryid + "&subcategoryname=" + subcategoryname), UriKind.Relative));
}
}
如果列表中有2个项目,如果单击第一个项目然后能够导航到子类别页面。但是再次单击相同的第一个项目无法导航。如果单击第一个项目后单击2项目然后能够导航到子类别页面.....
答案 0 :(得分:5)
您需要在致电PersonalInfoList.SelectedIndex
之前或之后将-1
设置为NavigationService.Navigate
以重置所选项目。
如果您使用的是LongListSelector,请将SelectedItem
设置为null
答案 1 :(得分:2)
正如Claus在回答中提到的那样,你需要将PersonalInfoList.SelectedIndex
设置为-1
。但是,如果您只是渲染用于导航的列表,我为此目的创建了NavigationList
:
A Fast Loading Windows Phone 7 NavigationList Control
这样做的优点是加载速度大约是ListBox
的两倍,同样也没有必要“重置”所选索引的问题。