?
Solved

How I can bind Images to datagrid In wpf

Posted on 2010-09-17
7
Medium Priority
?
2,065 Views
Last Modified: 2013-11-12
I use wpf datagrid  which gets source from database. I store Images as byte array in database. What can i do to see the images from database on datagrid ?
Thanks In advance
0
Comment
Question by:Zherquen
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
7 Comments
 
LVL 29

Expert Comment

by:Gautham Janardhan
ID: 33699853
you can create a converter which will convert the byte array to an image source
0
 
LVL 29

Accepted Solution

by:
Gautham Janardhan earned 2000 total points
ID: 33699881
something like this
public class ImageConverter: IValueConverter

{

#region IValueConverter Members

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)

{

BitmapImage img = new BitmapImage();

using (MemoryStream stream = new MemoryStream(value as byte[])) 

{

      img.SetSource(stream);

} 

return img;

}


<Image Source="{Binding YourByteArray, Converter={StaticResource ImageConverter}"/>

Open in new window

0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 

Author Comment

by:Zherquen
ID: 33699902
Hello gauthampj,
I have found many converter in c# but dont know how to use them in xaml code.
For Example :
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)

{
Byte[] bytes = value as
Byte[];


MemoryStream mem = new
MemoryStream(bytes);

mem.Write(bytes, 0, bytes.Length);

mem.Seek(0, SeekOrigin.Begin);


BitmapImage image = new
BitmapImage();

 

image.BeginInit();

image.DecodePixelWidth = 60;

image.CacheOption = BitmapCacheOption.OnLoad;

image.StreamSource = mem;

image.EndInit();


return image;

 

}

 


public
object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)

{

     return
null;

}

How can i relate the code with datagrid in xaml code?
0
 
LVL 29

Expert Comment

by:Gautham Janardhan
ID: 33699973
you need to add it as a resource and then refer it.. see sample below
0
 
LVL 29

Expert Comment

by:Gautham Janardhan
ID: 33700003
oops forgot to attach
 namespace TestWpf
 {
     public class ImageConverter : IValueConverter
    {
        #region IValueConverter Members
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            BitmapImage img = new BitmapImage();
            using (MemoryStream stream = new MemoryStream(value as byte[]))
            {
                img.StreamSource = stream;
            }

            return img;

        }

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

        #endregion
    }
}

/*XAML*/

    <Grid xmlns:local="clr-namespace:TestWpf">
        <Grid.Resources>
            <local:ImageConverter x:Key="Converter"/>
        </Grid.Resources>
        <Image Source="{Binding YourByteArray, Converter={StaticResource Converter}"/>
    </Grid>

Open in new window

0
 
LVL 29

Expert Comment

by:Gautham Janardhan
ID: 33700012
also don't forgot to replace the name space xmlns:local="clr-namespace:TestWpf" with the one where you put the converter
0

Featured Post

Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

For most people, the WrapPanel seems like a magic when they switch from WinForms to WPF. Most of us will think that the code that is used to write a control like that would be difficult. However, most of the work is done by the WPF engine, and the W…
Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…

765 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question