private void addResultBook(ObservableCollection <Book> books, ObservableCollection <ViewModel.SearchResultBook> resultBooks) { foreach (var book in books) { var bookResult = new ViewModel.SearchResultBook(book); resultBooks.Add(bookResult); } }
ObservableCollection <ViewModel.SearchResultBook> GetSearchResultBookList(Book book) { ObservableCollection <ViewModel.SearchResultBook> resultList = new ObservableCollection <ViewModel.SearchResultBook>(); { var bookResult = new ViewModel.SearchResultBook(book); resultList.Add(bookResult); } return(resultList); }
async private void InitList(BookShelf bookshelf, ObservableCollection <Book> books) { ResultBookList = new ObservableCollection <ViewModel.SearchResultBook>(); addResultBook(books, ResultBookList); SearchResultVM = new SearchResultVM { BookResultList = ResultBookList }; this.BindingContext = SearchResultVM; listBook.ItemSelected += async(sender, e) => { if (e.SelectedItem == null) { return; } ((ListView)sender).SelectedItem = null; ViewModel.SearchResultBook item = e.SelectedItem as ViewModel.SearchResultBook; //本棚に登録済みの場合は詳細を表示しない if (item != null && item.IsRegistBookShelf == false) { await Navigation.PushAsync(new BookDetailPage(bookshelf, item.CreateBook(), item.IsRegistBookShelf)); } }; listBook.ItemAppearing += async(object sender, ItemVisibilityEventArgs e) => { // ObservableCollection の最後が ListView の Item と一致した時に ObservableCollection にデータを追加する。 if (ResultBookList.Last() == e.Item as SearchResultBook) { // ObservableCollection にデータを追加する処理 stack.IsVisible = true; await AmazonSearch(SearchContext); // 実際の処理を入れてください。 stack.IsVisible = false; } }; SearchResultVM.CheckBooks(books); }