We discussed earlier that the DataBinder.Eval method is used to declare which members of the DataItem to use in the output. The Eval method uses reflection to get the second parameter from the first. This approach typically has Container.DataItem as the first parameter, which yields a DataRowView. The second parameter is the name of the data field within the DataRowView. There is a performance cost associated with reflection, so you might want to think twice about the volume of required operations. The DataSet is a primary data source for the DataGrid control, however, and its performance in rendering is remarkable given the sheer volume of operations required to produce the output.