First, you should consider using DataGridTableStyle(s) to control exactly what the user sees (for instance, if you have a PK in your strongly-typed DataSet as a numeric type, users probably don't need to see that). This will allow you to add columns that aren't bound to the DataSet as well. You can use expressions in your DataSet and these are not limited to boolean expressions. For more information and examples, see the documentation for the DataColumn.Expression property at http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemDataDataColumnClassExpressionTopic.asp[^]. Why I mentioned DataGridTableStyle before is that you could also extend DataGridColumnStyle and make your own class if you need expressions that are supported by DataColumn.Expression. See the documentation for DataGridColumnStyle in the MSDN library at http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemWindowsFormsDataGridColumnStyleClassTopic.asp[^].
Microsoft MVP, Visual C# My Articles