Использовать ObjectListView . Это было специально разработано с целью уйти от скрытых столбцов для хранения данных.
В ObjectListView каждая строка знает, какой объект модели использовался для его создания. Итак, если вы хотите найти FilePath для объекта, который выбрал пользователь, вы говорите:
MyDataModel model = this.objectListView.SelectedModel as MyDataModel;
if (model != null) {
DoSomething(model.FilePath);
}
Также, возможно, вы захотите взглянуть на этот другой вопрос , который говорит об этой же проблеме с более высокой точки зрения.
ObjectListView также добавляет много приятных конфет UI, которые всегда впечатляют пользователей:)
![alt text](https://i.stack.imgur.com/zzfwU.png)
(источник: sourceforge.net )
Кстати: ObjectListView предназначен только для Windows Forms.