Create a simple DataGridView with List of objects and checkbox column (C#)
===

I have looked at a lot of places and I'm struggling to do this supposedly simple thing. I have a Windows form on which I've to show a simple DataGridView in this form: 

| (CheckBoxColumn) | FilePath | FileState |


Now, there are a couple of problems. The data I need to bind to them is in a List of objects like this: 

        class FileObject
        {
            string filePath;
            string fileState;
        }

        //Now here's the list of these objects which I populate somehow. 
        List<FileObject> listFiles;

 - Is there any efficient way to bind this directly to the DataGridView
   so that different members of Object in the list are bound to
   different columns, and for each there's checkbox? 
 - I saw the examples of adding checkbox column to a datagrid, but none of them showed how
   to add it to the 'header' row as well, so that it can behave as a 'check all'/'uncheck all' box. 

Any help in how to achieve this would be great! I do write simple applications in C# but never had to work with datagrids etc. :(

Thanks!