Data Grid is one of the most widely used types of controls among developers. Many kinds of data have a tabular nature and are best represented as a grid on a computer screen. The importance of providing users with really consistent and intuitive user interface can hardly be underestimated, and a well-tailored grid could play a primary role in many user interface concepts.
Windows Forms developers are lucky, as Microsoft has included a ready-made DataGrid control into both of the Windows Forms and Web Forms sub-systems of its .NET Framework. However, many developers who have used the Windows Forms DataGrid control might have had a feeling of it being somewhat rigid or even limited. In other words, while some customization can be achieved with several mouse clicks or keystrokes, and some others can be done with just a few lines of code, there are amendments which either require significant efforts or cannot be implemented at all. For example, there is no way to alter column header appearance other than taking over painting of the whole grid exterior.
Having bumped into several such limitations myself, and having spent long hours on searching the Internet and digging the MSDN Library, I have decided to share my DataGrid experience with the developer community in the hope of saving valuable time and even more valuable nerve cells for those who accept the DataGrid challenge in a quest for better user interface experience.