Search code examples
c#wpfdatagridviewtooltipautogeneratecolumn

Setting ToolTip for DataGridView automatically created columns


I would like to programatically set tooltips to automatically generated columns in a DataGridView. I was trying to use AutoGeneratingColumn event (http://msdn.microsoft.com/en-us/library/cc903950%28VS.95%29.aspx), but that in fact can only access DataGridColumn, not DataGridViewColumn, and the former doesn't have ToolTipText property.

Or if I could bind the ToolTips to a source that would also be great. The goal is to have the ability to manipulate/set tooltips in the same place where I set the columns for the underlying DataTable.


Solution

  • I managed to solve it this way:

    void payloadDataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
    {
        string tooltip = null;
    
        switch (e.Column.Header.ToString())
        {
            case "Column 1":
                tooltip = "Tooltip 1";
                break;
            case "Column 2":
                tooltip = "Tooltip 2";
                break;
        }
    
        if (tooltip != null)
        {
            var style = new Style(typeof(DataGridCell));
            style.Setters.Add(new Setter(ToolTipService.ToolTipProperty, tooltip));
            e.Column.CellStyle = style;
        }
    }