Püf Noktası #104 - Silverlight Listbox'a Veri Çekme

Perşembe, 15 Nisan 2010 10:03 by ikivanc
Silverlight içerisinde C# tarafında tanımladığınız kodlar ile Listbox'ın içerisine kendi tanımladığımız tipleri nasıl gösterebiliriz şimdi de onu görelim.

Şimdi bir öğrenci sınıfı oluşturalım ve bu sınıftan türeteceğimiz öğrenci listesinin içeriğini Listbox'ın içerisine kendi tanımladığımı template içerisine alalım.

Xaml tarafındaki kod

<ListBox x:Name="lstbx_ogrenciler" Margin="33,45,0,52" Width="252" 
         ItemTemplate="{StaticResource DataTemplateOgrenci}" 
         Foreground="Black" Background="White"/>

Listbox'ın Item tasarımı da aşağıdaki gibi olacaktır

<UserControl.Resources>
  <DataTemplate x:Key="DataTemplateOgrenci">
    <Grid Height="69" d:DesignWidth="180" d:DesignHeight="32">
      <TextBlock Height="22" Margin="73,0,0,0" VerticalAlignment="Top" Text="{Binding no}" TextWrapping="Wrap"/>
      <TextBlock Margin="73,22,0,26" Text="{Binding adi}" TextWrapping="Wrap"/>
      <TextBlock Height="22" Margin="73,0,0,0" VerticalAlignment="Bottom" Text="{Binding soyadi}" TextWrapping="Wrap"/>
      <dataInput:Label Height="18" HorizontalAlignment="Left" VerticalAlignment="Top" Width="73" Content="No:"/>
      <dataInput:Label HorizontalAlignment="Left" Width="73" Margin="0,22,0,26" Content="Adi:"/>
      <dataInput:Label HorizontalAlignment="Left" Width="73" Margin="0,0,0,4" Height="18" VerticalAlignment="Bottom" Content="Soyadi:"/>
    </Grid>
  </DataTemplate>
</UserControl.Resources>

C# tarafında kod kısmı ise

public class Ogrenci
{
    public string adi { get; set; }
    public string soyadi { get; set; }
    public int no { get; set; }
}
 
List<Ogrenci> ogrencilistesi = new List<Ogrenci>();
 
public MainPage()
{
    InitializeComponent();
    this.Loaded += new RoutedEventHandler(MainPage_Loaded);
}
 
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    ogrencilistesi.Add(new Ogrenci { adi = "ibrahim", soyadi = "kıvanç", no = 12 });
    ogrencilistesi.Add(new Ogrenci { adi = "ibrahim1", soyadi = "kıvanç1", no = 15 });
    ogrencilistesi.Add(new Ogrenci { adi = "ibrahim2", soyadi = "kıvanç2", no = 16 });
    ogrencilistesi.Add(new Ogrenci { adi = "ibrahim3", soyadi = "kıvanç3", no = 18 });
    ogrencilistesi.Add(new Ogrenci { adi = "ibrahim4", soyadi = "kıvanç4", no = 10 });
    lstbx_ogrenciler.ItemsSource = ogrencilistesi;    
}

Şeklinde olacaktır.

Bu sayede istediğimiz verileri kolaylıkla silverlight içerisinde Listbox'lara aktarabiliriz.

Kolay gelsin.

Yorumlar