RadGridView should be able to create new rows using objects with properties matching the FieldNames of the control's columns.
The Rows property of RadGridView is a collection of GridViewRowInfo objects. The keep the concept of this collection clean it is best to allow only addition of GridViewRowInfo objects to it. The second overload of the Add method is only there to allow you to skip the creation of a GridViewRowInfo object but that is all. Adding for example "Person" objects to the grid Rows collection is really not a good way to populate RadGridView with data. In OOP having two objects with identical properties without them implementing a common interface or inheriting from one another is rather a rarity. In cases where you use RadGridView in bound mode you can bind it to a collection of the common interface or the base class and add objects directly to the RadGridView data source.