Önceki makalemizde ListView kullanımı ile ilgili hemen hemen tüm ayrıntıları inceledik fakat başka kontroller ile ListView etkileşimini detaylı olarak bu makalede incelemeye çalışacağız.
Senaryomuzu güncelleyelim;
Xamarin.Forms SearchBar kontrolü ile ListView içerisindeki oyuncuların FullName özelliklerine göre anlık arama yapabilme.
Tüm olayları ve senaryoyu kavrayabilmek adına önceki makalemizi okumanızı tavsiye ediyorum.
SearchBar kontrolümü ListView kontrolümün hemen üzerine ekliyorum.
SearchBar’ın TextChanged event’ini ve Placeholder özelliğini kullanacağım.
Not: SearchButtonPressed event’ini kullanabilirdik fakat, senaryomuzda karakter girildikçe arama yapılmasını istiyoruz.
SearchBar’ın Text özelliğine her bir karakter girildiğinde Players.xaml.cs tarafında bir metot yardımı ile istediğim kural setine göre işlemler yapacağım.
SearchBar kontrolümün’ün event’inde TextChangedEventArgs‘in NewTextValue özelliği ile yazılan text değerini alıyorum ve GetPlayersWithGrouping metodu yardımı ile arama işlemlerimi kural bazlı gerçekleştirebiliyorum.
Gelen değer boş değilse ve karakter sayısı 2’den büyük ise metot arama işlemi ile çalışacak, eğer arama yaparken çarpı işareti ile aramadan çıkarsa veya yazdığı text’i silerse liste baştan yüklenecek.
GetPlayersWithGrouping metodunu tüm uygulamamdaki ListView Binding işlemlerimde kullandığım için, isteğin bir arama işlemi olduğunu alamak için playerFullName değişkeni ile kontrol ediyorum.
Aslında temel olarak yaptığımız tek işlem SearchBar ile ListView datasını değiştirmek 🙂 (Değişen 1-2 yeri atlamamak gerekiyor.)
Ek olarak Players sayfamdaki refreshCount değişkeni static bir değişken olarak BJKFactory sınıfına eklendi ve başlangıç değer 0 verildi.
Uygulamamızın 1. versiyon’unda public static Players değişkeni’nin erişim belirleyicisi private olarak değiştirildi. Çünkü artık GetPlayersWithGrouping metodunu kullanıyoruz. Players değişkeni, Factory sınıfı ilk defa çalıştırıldığında datayı private şekilde tutan bir değişken artık. İçerisindeki datayı hiç değiştirmediğimiz için bir daha doldurma ihtiyacı duymuyoruz. Çünkü her GetPlayersWithGrouping metodu çağırıldığında result değişkenine Players datasını atıp result içerisinde işlem yapıyoruz.
github
Görüşmek üzere.
Etiketler: caching, caching strategy, contextactions itemtemplates, data binding, footertemplate, grouping, headertemplate, item pull, item tapped, listview, pulltorefresh, RecycleElement, refresh, RetainElement, xamarin android, xamarin droid, xamarin forms, Xamarin Forms ListView ile SearchBar Kullanımı, xamarin ios, xamarin nedir, xamarin pcl, xamarin searchbar, xamarin türkiye, xamarin uwp, xamarin windows, xamarin winphone, xamarintr
Paylaş:
Yiğit ÖZAKSÜT
MVP, MCT, Xamarin Developer, Consultant & Architect
Yorum Gönder
Gönder
Sosyal Medya
İş İlanları
iOS Developer - İstanbul, Ankara, İzmir
İş Analisti - İstanbul, Ankara, İzmir
Data Scientist - Istanbul
Mobile Platform Developer (Xamarin) - İstanbul
Tüm ilanları görüntüle
Popüler Yazılar
İBB Açık Veri’ye Hoş Geldiniz – İlk Örnek
Son Yorumlar
Xamarin Nedir ? için Fatih Aslan
Xamarin Nasıl Çalışır? için Uğur Sinan Sağıroğlu
PSD’den XAML’a Login Page Tasarımı Part-2 (Xamarin Forms) için Mehmet
Xamarin.Forms AutoTextCompleter için Caglar
ASP.NET Core API Versioning için Erdoğan
Etiket Bulutu
.NET Core Android azure BindableProperty c# carouselview cross platform data binding etkinlik HorizontalOptions iOS meetup microsoft microsoft açık akademi mobil uygulama mva mvvm neden xamarin Orientation plugin portable class library push notification Shared VerticalOptions web api winphone xamarin Xamarin.Forms Controls Xamarin.Forms Pages Xamarin Dersleri xamarin eğitimi xamarin eğitimleri xamarin forms xamarin nedir xamarin pcl xamarin plugin xamarintr Xamarin Traditional xamarin türkiye xamarin türkçe dersler xamarin türkçe kaynak xamarin uygulama geliştirme xaml design yiğit özaksüt öğrenciler için xamarin