A Typed DataSet offers a number of benefits over a normal DataSet and makes coding efforts less error-prone. As you have seen in this article, almost all the errors related to Typed DataSets can be eliminated at compile time, saving developers from having to track down errors at runtime for a normal DataSet. Of course, in terms of performance we compromise a bit for a Typed DataSet, but in comparison to the underlying benefits, a little performance hit is worthwhile (but still this varies from application to application).
Some other ways exist of creating and manipulating Typed DataSets, but they are beyond the scope of this article. For a more complex manipulation of Typed DataSets, you can play with the events supported by DataTable, DataRow, and so on. Overall, using Typed DataSets is a nice programming practice that makes your code less error-prone and more readable and that gives faster development results.
(You can download the sample application code for the later part to test how to use it in DataGrid events.)