Вы можете использовать атрибут displayname для настройки заголовков, которые будут отображаться в представлении данных.
В вашем классе вы можете определить каждое свойство следующим образом
[DisplayName("Title")]
public string Something{get;set;}
Тогда «Заголовок» будет показан в качестве заголовка для этого свойства в сетке. Используя этот способ, вы устанавливаете «заголовок по умолчанию» для всех наборов данных в вашем приложении, которые связаны с коллекцией этого класса.
РЕДАКТИРОВАТЬ:
Ну, я думаю, что будет сложно изменить атрибуты во время выполнения, вместо этого вы можете сделать что-то вроде
GridName.Columns["Something"].HeaderText = "Title"
РЕДАКТИРОВАТЬ2:
Хорошо, вы хотите сохранить информацию об имени столбца в другом классе или объекте. Тогда вы можете попробовать что-то вроде этого
public static void ChangeHeaders(DataGridView dataGrid, Dictionary<String, String> data)
{
if (data == null)
{
return;
}
Dictionary<string, string>.Enumerator enumerator = data.GetEnumerator();
while (enumerator.MoveNext())
{
try
{
dataGrid.Columns[enumerator.Current.Key].HeaderText = enumerator.Current.Value;
}
catch (NullReferenceException e)
{
throw new ArgumentException("The column " + enumerator.Current.Key + " does not exist");
}
}
}
Эта функция получает объект datagridview и словарь строк / строк. Ключ словаря - это имя свойства, а значение - текст, который вы хотите в заголовке. Построить словарь, вызвать функцию и работа сделана.