How to use [Display(Name="")] as column headers with LoadFromCollection

LoadFromCollection only responds to the DisplayName or the Description attribute and not the Display attribute.

So you could try adding one of these attributes to your current properties.

[DisplayName("Friendly Column Name")]
[Display(Name = "Friendly Column Name")]
public string StudentName { get; set; }

Also make sure you have the PrintHeaders parameter to true when calling LoadFromCollection, but you say the true names appear, so that's probably already OK.