2
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つのアイテムをクリックすると、サブカテゴリページに移動できます. ....

4

2 に答える 2

5

選択した項目をリセットするには、 を呼び出す前または後にを設定PersonalInfoList.SelectedIndexする必要があります。-1NavigationService.Navigate

LongListSelector を使用している場合はSelectedItemnull

于 2012-04-11T07:06:45.020 に答える
2

PersonalInfoList.SelectedIndexクラウスが彼の答えで言及しているように、 を に設定する必要があります-1。ただし、ナビゲーションに使用されるリストをレンダリングするだけの場合は、NavigationListこの目的のために作成しました:

高速読み込みの Windows Phone 7 NavigationList コントロール

これには、 の約 2 倍の速さでロードできるという利点がListBoxあります。また、選択したインデックスを「リセット」しなければならないという同じ問題もありません。

于 2012-04-11T07:35:55.267 に答える