win8 页面之间传递数据

   private void itemView_ItemClick(object sender, ItemClickEventArgs e)
        {
            // Navigate to the split page, configuring the new page
            // by passing the clicked item (FeedItem) as a navigation parameter
            this.Frame.Navigate(typeof(SplitPage), e.ClickedItem);
        }
复制代码

   若要在页面之间导航,你可以使用 Frame 控件的 Navigate、GoForward 和 GoBack 方法。
   通过 Navigate(TypeName, Object) 方法可以导航并将数据对象传递到新页面。我们将使用此方法在我们的页面之间传递数据。
   第一个参数 typeof(MainPage) 是我们将要导航到的页面的 Type。第二个参数是我们传递给将要导航到的页面的数据对象。
   在本例中,我们传递 clicked 项。在 SplitPage.xaml.cs代码隐藏页面中,
   我们需要使用刚刚从项目页面传递的 FeedData 对象执行某些操作。为此,我们将覆盖Page的OnNavigatedTo方法。
   该方法已添加到页面模板代码中,因此我们只需要对其进行修改以便与我们的数据关联。
   模板页面包含一个名为 DefaultViewModel 的内置视图模型,我们可以将数据与之关联。
   NavigationEventArgs.Parameter 属性包含从项目页面传递的数据对象。 我们将其转换回 FeedData 对象,
   并将信息提要数据添加至具有关键字 Feed 的 DefaultViewModel,
   将 FeedData.Items 属性添加至具有关键字 Items 的 DefaultViewModel。以下是更新的 OnNavigatedTo 方法:

protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            // TODO: Assign a bindable group to this.DefaultViewModel["Group"]
            // TODO: Assign a collection of bindable items to this.DefaultViewModel["Items"]
            FeedData feedData = e.Parameter as FeedData;
            if (feedData!=null)
            {
                DefaultViewModel["Feed"] = feedData;
                DefaultViewModel["Items"] = feedData.Items;
                if (!UsingLogicalPageNavigation())
                {
                    itemsViewSource.View.MoveCurrentToFirst();
                }
            }
        }
posted @ 2012-07-12 18:01  win_and_first  阅读(350)  评论(0编辑  收藏  举报