Windows Phone 8 LongListSelector DataBind örneği | Engin Polat\'ın Windows 8 , Windows Phone 8 ve C# içerikli programcılık sitesi
Ana Sayfa > Programlama, Windows Phone 8 > Windows Phone 8 LongListSelector DataBind örneği

Windows Phone 8 LongListSelector DataBind örneği

01 March 2013

Windows Phone 8 uygulamanıza LongListSelector kontrolü eklemeniz ve bir veri kaynağına bağlamanız gerekiyorsa aşağıdaki adımları izleyebilirsiniz.

Öncelikle DataBindSample isimli yeni bir Windows Phone App projesi oluşturalım;

Data Bind Sample Windows Phone Application Project

Proje oluşturduktan sonra gelen Windows Phone Platform versiyon seçim penceresinde Windows Phone OS 8.0 seçeneğinin seçili olduğundan emin olmalıyız;

Windows Phone 8.0 SDK

Bu örnek için Book ve BookList isminde birer class oluşturacağız.

Book sınıfına Title ve Writer isminde iki property ekleyelim;

public class Book
{
	public string Title { get; set; }

	public string Writer { get; set; }
}

BookList sınıfını List<Book> sınıfından türeteceğiz;

public class BookList : List<Book>
{
	public BookList()
	{
		Add(new Book() { Title = "Jurassic Park", Writer = "Michael Crichton" });
		Add(new Book() { Title = "Bourne Identity", Writer = "Robert Ludlum" });
		Add(new Book() { Title = "Devil Wears Prada", Writer = "Lauren Weisberger" });
		Add(new Book() { Title = "Fight Club", Writer = "Chuck Palahniuk" });
		Add(new Book() { Title = "Forrest Gump", Writer = "Winston Groom" });
		Add(new Book() { Title = "Green Mile", Writer = "Stephen King" });
		Add(new Book() { Title = "I Am Legend", Writer = "Richard Matheson" });
		Add(new Book() { Title = "Jaws", Writer = "Peter Benchley" });
		Add(new Book() { Title = "Notebook", Writer = "Nicholas Sparks" });
		Add(new Book() { Title = "Silence of the Lambs", Writer = "Thomas Harris" });
		Add(new Book() { Title = "Spartacus", Writer = "Howard Fast" });
	}
}

BookList sınıfının constructor‘ında listeye birkaç kitap ekliyoruz, böylece uygulamayı çalıştırdığımızda ekrana gelecek liste dolu olacak.

Not : Test süreci sonunda constructor’daki kodlar temizlenmeli ve verikaynağı olarak veritabanına veya bir web service’e bağlanmalıdır.

MainPage.xaml dosyasını aşağıdaki şekilde güncelleyerek ekrana list isminde bir LongListSelector ve DataTemplate özelliğine StackPanel içerisinde TextBlock‘lar ekleyelim;

<Grid x:Name="LayoutRoot" Background="Transparent">
	<Grid.RowDefinitions>
		<RowDefinition Height="Auto"/>
		<RowDefinition Height="*"/>
	</Grid.RowDefinitions>

	<TextBlock Text="databind örnek" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}" />

	<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
		<phone:LongListSelector Name="list">
			<phone:LongListSelector.ItemTemplate>
				<DataTemplate>
					<StackPanel Orientation="Horizontal">
						<TextBlock Text="{Binding Path=Title}" />
						<TextBlock Text=" ( " />
						<TextBlock Text="{Binding Path=Writer}" FontStyle="Italic" />
						<TextBlock Text=" )" />
					</StackPanel>
				</DataTemplate>
			</phone:LongListSelector.ItemTemplate>
		</phone:LongListSelector>
	</Grid>
</Grid>

Son olarak MainPage.xaml.cs constructor‘ında LongListSelector‘un ItemSource özelliğine BookList sınıfından yeni bir instance atıyoruz;

list.ItemsSource = new BookList();

Artık uygulamayı çalıştırabiliriz, aşağıdaki çıktıyı görüyor olmamız lazım;

Data Bind Sample screen shot


  • Burak Güner

    Merhaba Engin Bey Ben Json ile Datayı cektiktem sonra Item source u data geldikten sonra setlemek için baska bir thread baslattım data geldikten sonra Json serialize islemini call back fonksiyonu saglıyor callback fonk u ne zaman calısacagını bılmedıgımden bir thread yazdım list dolunca veriler gelince yeni thread ile Item soource u setliyorum ancak.”An unhandled exception of type ‘System.UnauthorizedAccessException’ occurred in System.Windows.ni.dll” şeklinde bir hata alıyorum yardımcı olursanız sevinirim iyi çalısmalar.

  • Hocam merabalar,

    ItemSource u liste değilde veritabanı(local database’e) nasıl bağlarız. Sqlight bağlantısı nasıl yapılabilir acaba? Çok kaynak yok açıkçası bununla alakalı bir blog yazısı daha yazar mısınız yada varsa yönlendirir misiniz?
    Teşekkür ederim. Saygılarımla..

  • Çok Teşekkürler Hocam .C# Hakkında Ve win8 Hakkında Sizden Çok Şey Ögrendim.