WP7 ve Wcf Servisleri Kullanarak AutoComplete

Merhaba arkadaşlar. Windows Phone 7 ve Wcf Servisleri Kullanarak Autocomplete’in nasıl gerçekleştirildiğini sizlerle paylaşıcam 🙂 İlk öncelikle eğer windows phone 7 sdk  kurulu değilse http://dev.windowsphone.com/en-us/downloadsdk bu linkten indirip kurabilirsiniz.

1) İlk Öncelikle Visual Studio 2010 açıp New Project -> Silverlight for Windows Phone -> Windows Phone Application seçiyoruz

2 ) Daha sonra açtığımız yeni WP7 uygulamasında autocomplete textbox özelliğini kullanabilmemiz için Microsoft.Phone.Controls.Toolkit adlı dlli Add Reference deyip projemize referans etmemiz gerekmektedir.

3) Referans ekledikten sonra

xmlns:phone=”clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone”

kod satırını MainPage.xaml dosyasına eklemeniz gerekmektedir.

4:) Referansımızı ekledikten sonra ToolBoxın içine AutoCompleteBox adlı item gelecektir ve biz bu itemla çalışıcaz. itemı Windows Phone Emulatörün içine sürükleyip bıraktığımızda örnek kodumuz aşığdaki gibi olmalıdır.

<Grid x:Name=”ContentPanel” Grid.Row=”1″ Margin=”12,0,12,0″>
<toolkit:AutoCompleteBox MinimumPrefixLength=”2″ FilterMode=”Contains”  HorizontalAlignment=”Left” Margin=”153,54,0,0″ Name=”autoCompleteBox1″ VerticalAlignment=”Top” Height=”65″ Width=”264″ />
</Grid>

Burada MinimumPrefixLenght, AutoCompleteBoxa kaç karakter girildikten sonra fonksiyonun tetiklenecğini belirler.

5:) Şimdi ise yeni bir wcf servis projesi açalım.

6:) Yeni bir Wcf Servis Application ekledikten sonra Data Connection kurmamız gerekiyor. Ben bunu Linq to Sql ile sağladım ama siz isterseniz dataset ile kurarsınız, isterseniz Entity ile, isterseniz de Ado.Net ile. O size kalmış. Daha sonra da ilk servisimizi yazmak için wcfservis projemize sağ tıklayp Add -> New Item-> Wcf Servis deyip .svf uzantılı servisimizi yaratmş oluyoruz. Bu servisimizi eklediğimizde 2 tür dosya gelir. Birisi servis içim fonksiyonun yazıldığı Service1.svc dosyası, diğeri ise bu fonksiyonun çağırıldığı Iservis1.cs dosyasıdır. Öncelikle Service1.svc dosyamızı inceliyoruz.

Burada dikkat edilmesi gereken husus ise şudur. Wcfserviste yazdığımız servisler bir çok tipi döndürebilir. Bool, string, int veya diğer tipler. Siz ado.net kullanıyorsanız DataSet veya DataTable da kullanabilirsiniz Ben burada veritabanından sorguma gelen tüm değerleri döndürmek için fonksiyonumu List tanımladım.

Şimdi ise IService1.cs kısmına bakalım.

Burada ise tek yaptığımız serviste yazdığımız fonksiyonu burada çağırmaktır. Ben bu servisimi girilen plakaları Autocomplete ile tamamlamak için kullanıcam.

Şimdi ise Service1.svc dosyamızın üzerine gelip sağ tıklayıp View in Browser ile servisimizi çalıştırıyoruz.

Karşınıza böyle bir sayfa çıkacaktır. Bu sayfanın linkini kopyalayalım ve WP7 projemize geri dönelim. Service Referances -> Add Service Reference diyip yeni bir servis referans ekleyelim.

Gördüğünüz gibi wcf servisinde yazdığımız fonksiyonun adını servisi çağırdığımızda görebiliyoruz. Ok tuşuna basıldığında WP7 projemize servicemizi referans etmiş oluyoruz. Şimdi ise MainPage.xaml.cs dosyasını açıyoruz ve öncelikle referans ettiğimiz servisi kütüphane olarak ekliyoruz.

Ardında da servisime ulaşmak için yazdığımız kodlar ise aşağıdaki gibidir.

Yukarıdaki kod satırını açıklarsak, referans ettiğimiz servise ait olan Service1Client nesnesini çağırdıktan sonra PlakaBulCompleted, servisimizdeki fonksiyonumuzdan dönen değer veya değerleri elde etmeye yarar. PlakaBulAsync ise gerekli olan parametreyi çağırıp işlemi tamamlar. İşlemimiz bu kadar basittir. Şimdi ise sonucu görelm:

Emülatörü debug ettiğimizde autocompletein başarıyla çalıştığını görebiliriz. Şimdiden kolay gelsin 🙂

Reklamlar