为什么列表框选择在Windows Phone 7中无法正常工作?

时间:2012-04-11 07:03:03

标签: windows-phone-7

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项目然后能够导航到子类别页面.....

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的两倍,同样也没有必要“重置”所选索引的问题。