Sintaxe do DataTemplate no ListBox com XAML

Olá pessoal, muitos devs me pedem uma forma de customizar a sintaxe para exibir dados nos controles ListBox, ComboBox no silverlight e windows phone. Na verdade, vc tem que customizar o XAML, então aqui está um exemplo do XAML:

<ListBox Name="lstDados" Width="200" Height="250">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <Image Source="{Binding ImageName, Converter={StaticResource localImageConverter}}" Margin="2"/>
                            <StackPanel Orientation="Vertical">
                                <TextBlock Text="{Binding Title}" FontSize="20"/>
                                <TextBlock Text="{Binding Author}"/>
                                <TextBlock Text="{Binding Language}"/>
                            </StackPanel>
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

 

O Converter é uma classe que captura o local das imagens que está na app asp.net (host), sendo:

public class ImageConverter:IValueConverter
{
    private string baseUri = "http://localhost:5155/images/";

    #region IValueConverter Members

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value != null)
        {
            Uri imageUri = new Uri(baseUri + value);
            return new BitmapImage(imageUri);
        }
        else
            return "";
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }

    #endregion

 Boa sorte e se divirta com o layout que só a imaginação é o limite :)

 

No Comments