New to Telerik UI for WinForms? Download free 30-day trial

Getting Started with WinForms HeatMap

This article shows how you can start using RadHeatMap. Just drag a RadHeatMap from the toolbox and drop it onto the form. Then, you can define sample data and bind the control:

WinForms RadHeatMap Getting Started

Setting up the Data

To use the RadHeatMap control you will need to define a model that will describe the data that will be shown.

public class TempInfo 
{ 
    public int Year { get; set; } 
    public string Month { get; set; } 
    public double Temperature { get; set; } 
}            

Setting up the Control

The control works with a few different definitions that describe how to data will be shown. In this example, we will use the CategoricalDefinition. The definition provides few properties to define what data should be used.

  • RowGroupMember: Contains the name of the property in the custom model that will be used to generate the rows.
  • ColumnGroupMember: Contains the name of the property in the custom model that will be used to generate the columns.
  • ValueMember: Contains the name of the property in the custom model that will be used to generate the cells. Based on that value the cell will be colored differently.

What's left is to create our sample data and set the DataSource property of the CategoricalDefinition. Then this definition needs to be applied to the RadHeatMap.Definition property.


private void PrepareData()
{
    int year = 2018;
    string[] months = new string[6] { "Jan", "Feb", "Mar", "Apr", "May", "Jun" };
    var randomNumberGenerator = new Random();

    var source = new BindingList<TempInfo>();
    for (int i = 0; i < months.Length; i++)
    {
        for (int k = 0; k < 6; k++)
        {
            var info = new TempInfo() { Year = year + k, Month = months[i], Temperature = randomNumberGenerator.Next(10, 300) };
            source.Add(info);
        }
    }
    CategoricalDefinition categoricalDefinition = new CategoricalDefinition();
    categoricalDefinition.RowGroupMember = "Year";
    categoricalDefinition.ColumnGroupMember = "Month";
    categoricalDefinition.ValueMember = "Temperature";
    categoricalDefinition.DataSource= source;
    this.radHeatMap1.DisplayCellText = true;
    this.radHeatMap1.Definition = categoricalDefinition;
}  

Telerik UI for WinForms Learning Resources