public override bool CheckRulesHook(DataSet ds, string tableName) { foreach (UsersDataSet.rb_UsersRow row in ds.Tables[tableName].Rows) { ValidateAddress(row); } }Passed in to the method is a System.Data.DataSet, however, I can use my typed data row in the foreach without trouble. This seems strange because ds.Tables[tableName].Rows returns a DataRowCollection that is a collection of DataRows, not a collection of my typed rows.