示例#1
0
        /// <summary>
        /// Populates the page with content passed during navigation.  Any saved state is also
        /// provided when recreating a page from a prior session.
        /// </summary>
        /// <param name="navigationParameter">The parameter value passed to
        /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested.
        /// </param>
        /// <param name="pageState">A dictionary of state preserved by this page during an earlier
        /// session.  This will be null the first time a page is visited.</param>
        protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
        {
            SingleCollectionViewModel ctx = new SingleCollectionViewModel();
            // TODO: Create an appropriate data model for your problem domain to replace the sample data
            //var group = SampleDataSource.GetGroup((String)navigationParameter);
            var collection = ctx.GetSingleCollection((int)navigationParameter);

            
            this.DefaultViewModel["Group"] = collection;
            this.DefaultViewModel["Items"] = collection.Albums;

            var relevantMusic = new List<StorageFile>();

            foreach (var album in collection.Albums)
            {
                var result = ctx.RelevantMusicCollection(album.album);
                relevantMusic.AddRange(result);
            }

            SetLocalMedia(relevantMusic.FirstOrDefault());

            


            if (pageState == null)
            {
                this.itemListView.SelectedItem = null;
                // When this is a new page, select the first item automatically unless logical page
                // navigation is being used (see the logical page navigation #region below.)
                if (!this.UsingLogicalPageNavigation() && this.itemsViewSource.View != null)
                {
                    this.itemsViewSource.View.MoveCurrentToFirst();
                }
            }
            else
            {
                // Restore the previously saved state associated with this page
                if (pageState.ContainsKey("SelectedItem") && this.itemsViewSource.View != null)
                {
                    var selectedItem = ctx.LastGetAlbum((String)pageState["SelectedItem"]);
                    this.itemsViewSource.View.MoveCurrentTo(selectedItem);
                }
            }
        }
        /// <summary>
        /// Populates the page with content passed during navigation.  Any saved state is also
        /// provided when recreating a page from a prior session.
        /// </summary>
        /// <param name="navigationParameter">The parameter value passed to
        /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested.
        /// </param>
        /// <param name="pageState">A dictionary of state preserved by this page during an earlier
        /// session.  This will be null the first time a page is visited.</param>
        protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
        {
            // new instance of the singlecollectionvm to return a single collection from last.fm api
            SingleCollectionViewModel ctx = new SingleCollectionViewModel();
            var collection = ctx.GetSingleCollection((int)navigationParameter);

            this.DefaultViewModel["Group"] = collection;
            this.DefaultViewModel["Items"] = collection.Albums;

            var relevantMusic = new List<StorageFile>();

            // checks the music collection on the user computer for relevant music files
            foreach (var album in collection.Albums)
            {
                var result = ctx.RelevantMusicCollection(album.album);
                relevantMusic.AddRange(result);
            }

            // plays the first in the list of relevant music
            SetLocalMedia(relevantMusic.FirstOrDefault());

            if (pageState == null)
            {
                this.itemListView.SelectedItem = null;
                // When this is a new page, select the first item automatically unless logical page
                // navigation is being used (see the logical page navigation #region below.)
                if (!this.UsingLogicalPageNavigation() && this.itemsViewSource.View != null)
                {
                    this.itemsViewSource.View.MoveCurrentToFirst();
                }
            }
            else
            {
                // Restore the previously saved state associated with this page
                if (pageState.ContainsKey("SelectedItem") && this.itemsViewSource.View != null)
                {
                    // retrieve the last album that was selected
                    var selectedItem = ctx.LastGetAlbum((String)pageState["SelectedItem"]);
                    this.itemsViewSource.View.MoveCurrentTo(selectedItem);
                }
            }
        }