From 33a62908b5ed0e727a3681ac0bbbb6b1ed65f7fd Mon Sep 17 00:00:00 2001 From: syneffort Date: Tue, 31 Jan 2023 15:20:41 +0900 Subject: [PATCH] listview, search bar, pull to refresh --- .../Views/SampleListViewPage.xaml | 6 ++-- .../Views/SampleListViewPage.xaml.cs | 30 +++++++++++++++++-- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleListViewPage.xaml b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleListViewPage.xaml index 6e29f1b..6e98d49 100644 --- a/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleListViewPage.xaml +++ b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleListViewPage.xaml @@ -4,10 +4,12 @@ x:Class="XamarinStudy.Views.SampleListViewPage"> - + + - diff --git a/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleListViewPage.xaml.cs b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleListViewPage.xaml.cs index 60b41f5..8088a36 100644 --- a/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleListViewPage.xaml.cs +++ b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleListViewPage.xaml.cs @@ -22,6 +22,13 @@ namespace XamarinStudy.Views } private void InitInstance() + { + //mainListView.ItemsSource = foods; + //mainListView.Footer = foods; + mainListView.BindingContext = GetFoodList(); + } + + private List GetFoodList() { foods = new List(); foods.Add(new Food() { Name = "냉면", Price = 10000, Flavor = "시원함" }); @@ -29,8 +36,12 @@ namespace XamarinStudy.Views foods.Add(new Food() { Name = "국수", Price = 5000, Flavor = "얼큰함" }); foods.Add(new Food() { Name = "쫄면", Price = 5000, Flavor = "매콤함" }); foods.Add(new Food() { Name = "떡볶이", Price = 3000, Flavor = "매콤함" }); - mainListView.ItemsSource = foods; - mainListView.Footer = foods; + foods.Add(new Food() { Name = "라면", Price = 3000, Flavor = "매콤함" }); + foods.Add(new Food() { Name = "짜장면", Price = 3000, Flavor = "달콤함" }); + foods.Add(new Food() { Name = "떡라면", Price = 5000, Flavor = "매콤함" }); + foods.Add(new Food() { Name = "짜장떡볶이", Price = 3000, Flavor = "달콤함" }); + + return foods; } private void mainListView_ItemSelected(object sender, SelectedItemChangedEventArgs e) @@ -42,5 +53,20 @@ namespace XamarinStudy.Views DisplayAlert("맛", $"선택한 음식의 맛은 {selected.Flavor} 입니다.", "확인"); mainListView.SelectedItem = null; } + + private void foodSearchBar_TextChanged(object sender, TextChangedEventArgs e) + { + mainListView.BindingContext = + foods.Where(food => food.Name.ToLower().Contains(e.NewTextValue.Replace(" ", "").ToLower())).ToList(); + } + + private void mainListView_Refreshing(object sender, EventArgs e) + { + foodSearchBar.Text = ""; + mainListView.BindingContext = GetFoodList(); + DisplayAlert("상태", "음식 리스트를 다시 불러왔습니다.", "확인"); + + mainListView.EndRefresh(); + } } } \ No newline at end of file