How to apply 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.
ViewController.cs
dataGrid.SelectionController = new CustomSelectionController(dataGrid); dataGrid.SelectionMode = SelectionMode.Multiple;
CustomSelectionController.cs
public class CustomSelectionController : GridSelectionController { public UIColor[] SelectionColors { get; set; } public CustomSelectionController(SfDataGrid dataGrid) { this.DataGrid = dataGrid; SelectionColors = new UIColor[11] { UIColor.Orange, UIColor.FromRGB(201,93,55), UIColor.FromRGB(123,149,52), UIColor.Red, UIColor.Black, UIColor.Brown, UIColor.FromRGB(42,159,214), UIColor.Gray, UIColor.FromRGB(24,123,67), UIColor.Purple, UIColor.FromRGB(72,173,170) }; } //code to set multipe selection colors public override UIColor GetSelectionColor(int rowIndex, object rowData) { if (SelectionColors != null && rowIndex != -1) return SelectionColors[rowIndex % 11]; else return UIColor.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/MultipleSelection1745536475