Как и Paolo (и другие), я бы создал конкретный класс и класс-контейнер:
[DataContract]
public class Student
{
[DataMember]
public int ID { get; set; }
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
}
[DataContract]
public class StudentList
{
[DataMember]
public string Name { get; private set; }
[DataMember]
public List<Student> Students { get; private set; }
public StudentList(string name)
{
Name = name;
Students = new List<Student>();
}
}
Их можно (де) сериализовать с помощью DataContractSerializer . Вышеуказанные классы являются лишь грубой отправной точкой. В зависимости от ваших потребностей вы должны думать о частных установщиках, неизменяемости и т. Д.
Но если у вас есть такие специфические классы, вы можете легко создать BindingSource , поместить в него свой StudentList.Students
и передать этот BindingSource в DataGridView для визуализации и изменения списка.