views:

23

answers:

1

I have a sqlite db from where i am retrieving images. I have to display those images into a windows datagrid. For binding , I have Class Called COntacts , given below

namespace ContactManager.Core
{
    public class Contacts
    {
        private long _id = 0;

        public long Id
        {
            get { return _id; }
            set { _id = value; }
        }
        private string _Name = string.Empty;

        public string Name
        {
            get { return _skypeName; }
            set { _skypeName = value; }
        }
        private string _displayName = string.Empty;

        public string DisplayName
        {
            get { return _displayName; }
            set { _displayName = value; }
        }
        private long _birthday = 0;

        public long BirthDay
        {
            get { return _birthday; }
            set { _birthday = value; }
        }

        private string _province = string.Empty;

        public string Province
        {
            get { return _province; }
            set { _province = value; }
        }
        private long _phone_home = 0;

        public long Phone_Home
        {
            get { return _phone_home; }
            set { _phone_home = value; }
        }
        private long _phone_mobile = 0;

        public long Phone_Mobile
        {
            get { return _phone_mobile; }
            set { _phone_mobile = value; }
        }

        private string _mood_text = string.Empty;

        public string Mood_Text
        {
            get { return _mood_text; }
            set { _mood_text = value; }
        }

       private byte[] _avatar_image = new byte[4096];
       public byte[] Avatar_Image
       {
           get{return _avatar_image;}
           set{_avatar_image = value;}
       }


    }
}

So my first question what type of property should I create in this contact class to hold image data. I am creating datagridviewcolumns at runime. Code is below

DataGridViewImageColumn dgvImColAvatar = new DataGridViewImageColumn();
dgvImColAvatar.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dgvImColAvatar.HeaderText = "Avatar";
dgvImColAvatar.DataPropertyName = "Avatar";

but when I execute application it shows me some TargetInvocation exeception with NullReference Exception too. So please help me in retrieving image data from db and bind it using class, property and collection. In between them i am using MapperBase<T> to auto assign values to properties.

+1  A: 

Aland Li's response details how you need to handle CellFormatting in order to create an image for the grid:

http://social.msdn.microsoft.com/Forums/en/winformsdesigner/thread/2343891f-59ea-482f-8a5e-e9aa68eacd81

Adam