How to set multiple selection colors in SfDataGrid?
SfDataGrid provides support to select one or more rows either programmatically or by touch interactions. By default SfDataGrid applies a common background color for the selected rows based on the current theme. However if your requirement is to have multiple selection colors when touching the rows, then SfDataGrid allows you to achieve this by writing a custom SelectionController derived from GridSelectionController and assigning it to the SfDataGrid.SelectionController property. You can override the GetSelectionColor () method to apply different colors for selection in runtime based on your requirement.
Refer the following code example to set different colors as row background for multiple selection in SfDataGrid.
MainActivity.cs
sfGrid.SelectionController = new CustomSelectionController(sfGrid); sfGrid.SelectionMode = SelectionMode.Multiple;
CustomSelectionController.cs
public class CustomSelectionController : GridSelectionController { public Color[] SelectionColors { get; set; } public CustomSelectionController(SfDataGrid datagrid) { this.DataGrid = datagrid; SelectionColors = new Color[11] { Color.DarkSalmon, Color.DarkSlateGray, Color.Red, Color.Blue, Color.DarkOliveGreen, Color.Black, Color.Gray, Color.MediumPurple, Color.BurlyWood, Color.DarkCyan, Color.DarkGoldenrod }; } //Code to set multiple selection colors public override Color GetSelectionColor(int rowIndex, object rowData) { if (SelectionColors != null) return SelectionColors[rowIndex % 11]; else return Color.Blue; } }
The following screenshot shows the final outcome upon execution of the above code
The working sample for this KB is available in the following link.
http://www.syncfusion.com/downloads/support/directtrac/general/ze/GettingStarted-1588258169