Silverlight ve WPF projelerinde XML verilerini Blend içerisinde otomatik olarak yüklemenin kolay bir yolu mevcut.
Bunun için "Import Sample Data from XML" sekmesine tıklayıp ardından
DataSource'un adını ve XML dosyasının yolunu vererek kolaylıkla projemize dahil edebiliriz.
Örnek Xml verisi olarak photo.xml dosyasını kullandım.
<?xml version="1.0" encoding="utf-8" ?>
<fotograf>
<foto>
<url>1.jpg</url>
<baslik>Ağlatmadan</baslik>
<aciklama>Ağlatmadan'ın Açıklaması</aciklama>
</foto>
<foto>
<url>2.jpg</url>
<baslik>Anladım</baslik>
<aciklama>Anladım'ın Açıklaması</aciklama>
</foto>
<foto>
<url>3.jpg</url>
<baslik>O'nu Hatırladıkça</baslik>
<aciklama>O'nu Hatırladıkça'nın Açıklaması</aciklama>
</foto>
<foto>
<url>4.jpg</url>
<baslik>Sevemezdim Bu Şehri</baslik>
<aciklama>Sevemezdim Bu Şehri'nin Açıklaması</aciklama>
</foto>
</fotograf>
projeye bu photo.xml dosyasını ve fotoğrafları ekledikten sonra projemizde kullanabiliriz.
Görüldüğü gibi SampleDataSource1'in içerisine geldi ve hepsi string olarak görünüyor. Şimdi de
bir önceki püf noktasında yaptığımız gibi sürükleyip bırakarak projeye devam edebilir.
Fakat hepsi string olduğu için fotoğraflarımız listboxta görünmeyecek ve onun yerine url adresleri listbox'ta görünecek.
Bunu da Image bileşenlerin Source özelliğine aktardığımız zaman listboxta fotoğrafları görebiliriz.
Bunu için Listboxta bu görünümleri sağlayan xaml kodu içerisinden DataTemplate özellikleri değiştirmeliyiz. Kodu aşağıdaki gibi değiştirdiğimizde
<DataTemplate x:Key="fotoTemplate">
<StackPanel>
<TextBlock Text="{Binding baslik}"/>
<Image Source="{Binding url}" Height="64" Width="120"/>
<TextBlock Text="{Binding aciklama}"/>
<TextBlock Text=""/>
</StackPanel>
</DataTemplate>
Ekran görüntümüz aşağıdaki gibi olacaktır.
Bu kolay özellik sayesinde XML verilerimizi C# tarafında kod yazmadan geliştirebiliriz.
Kolay gelsin.