如何从我的数据库中将图像显示到我的列表框中

时间:2015-07-29 08:48:02

标签: c# windows-phone-7 binding listbox

数据库中的属性是image。内容中的内容是二进制数据。这是列表框的datatemplate:

<DataTemplate x:Key="ItemTemplate">
        <Grid Width="467" Height="123" Margin="5,0,0,0">
            <Image Name="imgProduct" Source="{Binding pImage}" HorizontalAlignment="Left" Margin="0,5" Width="115"/>
            <TextBlock Text="{Binding pName}" Margin="120,0,133,92" Foreground="Black" FontFamily="Tahoma" FontSize="22.667"/>
            <TextBlock Text="{Binding pPrice}" Margin="146,69,263,35" Foreground="Black" FontSize="13.333"/>
            <TextBlock Text="{Binding pQty}" Margin="232,30,183,76" Foreground="#FF11BB00" FontSize="13.333" FontFamily="Tahoma"/>
            <TextBlock Text="{Binding pRewardCost}" Margin="433,89,0,14" FontSize="13.333" Foreground="#7F000000"/>
            <TextBlock Text="{Binding pSalesPrice}" Margin="155,85,233,14" Foreground="#FF005910" FontSize="17.333" RenderTransformOrigin="-0.196,0.375"/>
            <TextBlock HorizontalAlignment="Left" Margin="120,31,0,0" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="13.333" Height="15" Width="114">
                <Run Text="Quantity Available:"/>
                <LineBreak/>
                <Run Text=":"/>
            </TextBlock>
            <TextBlock HorizontalAlignment="Left" Margin="120,69,0,0" TextWrapping="Wrap" Text="SGD" VerticalAlignment="Top" FontSize="13.333" RenderTransformOrigin="-1.923,0.625" Foreground="Black"/>
            <TextBlock HorizontalAlignment="Left" Margin="120,85,0,0" TextWrapping="Wrap" Text="SGD" VerticalAlignment="Top" FontSize="17.333" RenderTransformOrigin="-1.923,0.625"/>
            <TextBlock HorizontalAlignment="Left" Margin="318,89,0,0" TextWrapping="Wrap" Text="Reward Points cost:" VerticalAlignment="Top" FontSize="13.333" Foreground="#7F000000"/>
            <InkPresenter HorizontalAlignment="Left" Height="2" Margin="122,75,0,0" VerticalAlignment="Top" Width="74" Background="Black" RenderTransformOrigin="0.5,0.5">
                <InkPresenter.RenderTransform>
                    <CompositeTransform ScaleY="-1"/>
                </InkPresenter.RenderTransform>
            </InkPresenter>
            <InkPresenter HorizontalAlignment="Left" Height="2" Margin="0,117,0,0" VerticalAlignment="Top" Width="467" Background="#66000000"/>
        </Grid>
    </DataTemplate>

使用数据库并在列表框中显示为项目的C#代码如下:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        var pdtQry = from pdt in fypDB.Products
                     select pdt;


        productCollection = new DataServiceCollection<Product>();




        productCollection.LoadCompleted += new
        EventHandler<LoadCompletedEventArgs>(productCollection_LoadCompleted);

        productCollection.LoadAsync(pdtQry);
    }
    void productCollection_LoadCompleted(Object sender, LoadCompletedEventArgs e)
    {
        if (productCollection.Continuation != null) productCollection.LoadNextPartialSetAsync();
        else
        {  
            listboxSearch.ItemsSource = productCollection;


        }

    }

调试后,pName,pPrice,pQty,pRewardCost和pSalesPrice。但是不显示图像。我想这可能是因为图像的格式不同。 dbo中的格式为image,为<binary data>。有没有办法转换和显示它?在此先感谢!!

0 个答案:

没有答案