Itemsource | Engin Polat\'ın Windows 8 , Windows Phone 8 ve C# içerikli programcılık sitesi

Arşiv

Etiketlenen yazılar itemsource

Windows Phone 8 LongListSelector DataBind örneği

01 March 2013 3 yorum

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