示例#1
0
        private async void AutoSuggestBox_QuerySubmitted(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args)
        {
            if (args.ChosenSuggestion != null)
            {
                //从提示框中选择某一项时触发
            }
            else
            {
                //用户在输入时敲回车或者点击右边按钮确认输入时触发
                if (searchMap.ContainsKey(args.QueryText))
                {
                    LoadToOther.Visibility = Windows.UI.Xaml.Visibility.Visible;
                    MovieItemDetail data = await TimeAPIService.GetMovieDetail(searchMap[args.QueryText]);

                    LoadToOther.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                    NavigationService.Navigate(typeof(MovieDetailViewModel).FullName, data, new SuppressNavigationTransitionInfo());
                }
                else
                {
                    searchMap = await TimeAPIService.GetMoviesTitleList(args.QueryText);

                    sender.ItemsSource = searchMap.Keys;
                }
            }
        }
        /// <summary>
        /// 初始化数据
        /// </summary>
        /// <returns></returns>
        public async Task LoadData()
        {
            if (MovieItems.Count == 0)
            {
                MovieItems.Clear();
                var data = await TimeAPIService.GetComingMovies();

                if (data.Count == 0)
                {
                    return;
                }
                foreach (var movie in data)
                {
                    // 只添加具有封面的电影
                    if (movie.Image != "")
                    {
                        MovieItems.Add(movie);
                    }
                }
                // 刷新页面
                RaisePropertyChanged("EmptyItem");
                // 添加磁贴
                string title = ResourceLoader.GetForCurrentView().GetString("ComingMoviePage_TextTitle/Text");
                string date  = ResourceLoader.GetForCurrentView().GetString("MovieDetailPage_TextDateHelp/Text");
                string look  = ResourceLoader.GetForCurrentView().GetString("ComingMovieViewModel_Look/Text");
                Singleton <LiveTileService> .Instance.AddTileToQueue(title, string.Empty, date, MovieItems[0].Date, look, MovieItems[0]);
            }
        }
示例#3
0
        public async Task SyncData()
        {
            Collections = new ObservableCollection <MovieItem>(Singleton <MyCollectService> .Instance.Collections);
            _history    = new Dictionary <string, double>(Singleton <MyCollectService> .Instance.History);

            //获得即将上映电影进行筛选
            var data = await TimeAPIService.GetComingMovies();

            if (data.Count == 0)
            {
                return;
            }
            var    list           = new List <KeyValuePair <MovieItem, double> >();
            double normOfHistory2 = 0;

            foreach (var item in _history.Values)
            {
                normOfHistory2 += item * item;
            }
            foreach (var movie in data)
            {
                double   normOfMovie2 = 0;
                double   dotProduct   = 0;
                string[] types        = movie.MovieType.Split(new char[] { ' ' });
                foreach (string type in types)
                {
                    if (type.Length != 0 && _movieType.Contains(type))
                    {
                        normOfMovie2++;
                        if (_history.ContainsKey(type))
                        {
                            dotProduct += _history[type];
                        }
                    }
                }
                double result = dotProduct / (normOfMovie2 * normOfHistory2);
                list.Add(new KeyValuePair <MovieItem, double>(movie, result));
            }
            list.Sort((pair1, pair2) => pair2.Value.CompareTo(pair1.Value));
            int count           = 0;
            var guessCollection = new ObservableCollection <MovieItem>();

            foreach (var item in list)
            {
                // 只添加具有封面的电影
                if (item.Key.Image != "" && Collections.Where(i => i.ID == item.Key.ID).ToList().Count == 0)
                {
                    count++;
                    guessCollection.Add(item.Key);
                    if (count == 10)
                    {
                        break;
                    }
                }
            }
            GuessLike = guessCollection;
        }
示例#4
0
        private async void AutoSuggestBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
        {
            if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput)
            {
                if (sender.Text.Length == 0)
                {
                    sender.ItemsSource = null;
                }
                else
                {
                    searchMap = await TimeAPIService.GetMoviesTitleList(sender.Text);

                    sender.ItemsSource = searchMap.Keys;
                }
            }
        }
        private async void LocationMovieList_ItemClick(object sender, ItemClickEventArgs e)
        {
            LocationMovieList.IsEnabled = false;
            LoadToOther.Visibility      = Visibility.Visible;
            MovieItemDetail data;
            string          movieId = (e.ClickedItem as MovieItemNow).ID;

            if (TimeAPIService.GetedDetail != null && TimeAPIService.GetedDetail.ContainsKey(movieId))
            {
                data = TimeAPIService.GetedDetail[movieId];
            }
            else
            {
                data = await TimeAPIService.GetMovieDetail(movieId);
            }
            LocationMovieList.PrepareConnectedAnimation("Image", e.ClickedItem as MovieItemNow, "ImageMovie");
            NavigationService.Navigate(typeof(MovieDetailViewModel).FullName, data, new SuppressNavigationTransitionInfo());
        }