Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

PictureBox DataBinding

Posted on 2008-09-29
3
Medium Priority
?
3,208 Views
Last Modified: 2012-05-05
Hello,

I am trying to DataBind a PictureBox with a stored BLOB image in a DB2 database.

I am able to bind the image using a Binding object as seen in the code below.

My problem is the datasource HasChanged() property is always true even if I don't change the image?

Any idea as to how I can fix this?

Thanks for any help.

MAC
ON_LOAD:
Binding binding = new Binding("Image", myRecord.Tables[0], "IMAGE", true);
this.pictureBox1.DataBindings.Add(binding);
 
 
 
 
ON_IMAGE_CHANGE:
 
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "JPEG files|*.jpg|Bitmap files|*.bmp|GIF files|*.gif|All files|*";
DialogResult mResult = openFileDialog1.ShowDialog(this);
 
if (mResult == DialogResult.OK)
{
    myImageFile = openFileDialog1.FileName;
    this.pictureBox1.Image = Image.FromFile(myImageFile);
}

Open in new window

0
Comment
Question by:mac-will
  • 2
3 Comments
 
LVL 37

Expert Comment

by:momi_sabag
ID: 22602933
which ado driver do you use?
0
 
LVL 8

Author Comment

by:mac-will
ID: 22604568
Hi,

I use the DB2 .NET driver.
Thanks
MAC
0
 
LVL 8

Accepted Solution

by:
mac-will earned 0 total points
ID: 22613456
I found my own solution.  I've posted it below for anyone who might find this useful:



You need to have an ImageChanged event.  Make a new class

   class MyPictureBox : PictureBox
    {
 
        public event EventHandler ImageChanged;
 
        //MUST USE NEW BECASUSE PictureBox.Image is not virtual
        public new Image Image
        {
            get
            {
                return base.Image;
            }
            set
            {
                bool imageChanged = base.Image != value;
 
                base.Image = value;
               
                if (imageChanged)
                {
                    this.OnImageChanged(new EventArgs());
                }
            }
        }
 
        protected virtual void OnImageChanged(EventArgs e)
        {
            ImageChanged(this, e);
        }
 
}

Open in new window

0

Featured Post

[Webinar] Cloud and Mobile-First Strategy

Maybe you’ve fully adopted the cloud since the beginning. Or maybe you started with on-prem resources but are pursuing a “cloud and mobile first” strategy. Getting to that end state has its challenges. Discover how to build out a 100% cloud and mobile IT strategy in this webinar.

Question has a verified solution.

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

It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Simulator games are perfect for generating sample realistic data streams, especially for learning data analysis. It is even useful for demoing offerings such as Azure stream analytics, PowerBI etc.
Is your data getting by on basic protection measures? In today’s climate of debilitating malware and ransomware—like WannaCry—that may not be enough. You need to establish more than basics, like a recovery plan that protects both data and endpoints.…
Screencast - Getting to Know the Pipeline
Suggested Courses

876 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