mercredi 6 janvier 2016

Binding base64 String Image into List view Stored in SQLite Database in windows phone 8.1

I have converted Image to base64 string and saved it in SQLite database as public string ProfileImage { get; set; } I want to bind image into a List view as I did binding Name and Address.

enter image description here

XAML

<ListBox.ItemTemplate>
    <DataTemplate>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>

            <Border Background="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}" Margin="0,10,0,0" Grid.Column="0" HorizontalAlignment="Left">
                <Image  x:Name="proImg" Source="{Binding ProfileImage}"  Stretch="UniformToFill" Height="79" Width="79"/>
            </Border>
            <StackPanel Grid.Column="1" Margin="14.5,0,0,0">
                <TextBlock Margin="5,0,0,0" Grid.Row="0" x:Name="NameTxt" TextWrapping="Wrap" Text="{Binding Name}" FontSize="32" Foreground="White" Style="{ThemeResource ListViewItemTextBlockStyle}"/>
                <TextBlock Margin="5,0,0,0" Grid.Row="1" x:Name="PhoneTxt"  TextWrapping="Wrap" Foreground="White" FontSize="20" Text="{Binding Address}" />
            </StackPanel>
        </Grid>
    </DataTemplate>
</ListBox.ItemTemplate>

Code I used to convert base64 String to Image in other Places

public static BitmapImage Base64StringToBitmap(string source)
{
    var ims = new InMemoryRandomAccessStream();
    var bytes = Convert.FromBase64String(source);
    var dataWriter = new DataWriter(ims);
    dataWriter.WriteBytes(bytes);
    dataWriter.StoreAsync();
    ims.Seek(0);
    var img = new BitmapImage();
    img.SetSource(ims);
    return img;
}

Is it possible to bind image source similar way to this

Source="{Binding Base64StringToBitmap(ProfileImage)}"

Aucun commentaire:

Enregistrer un commentaire