true
. When this property is set, sorting in each column iterates through three sort states: ascending, descending, and unsort.dataGrid.AllowSorting = true;
dataGrid.SortColumnDescriptions.Add (new SortColumnDescription () {
ColumnName = "OrderID",
SortDirection = ListSortDirection.Descending
});
dataGrid.SortColumnDescriptions.Add(new SortColumnDescription()
{
ColumnName = $"Values[{ "OrderID" }]",
});
dataGrid.SortComparers.Add(new SortComparer()
{
PropertyName = $"Values[{ "OrderID" }]",
Comparer = new CustomComparer() });... public class CustomComparer : IComparer<Object>, ISortDirection {
public int Compare(object x, object y)
{
return SortDirection == Syncfusion.Data.ListSortDirection.Ascending ? 1 : 0;
}
//Gets or sets the SortDirection value
public Syncfusion.Data.ListSortDirection SortDirection { get; set; } } |
customComparer = new CustomComparer(Syncfusion.Data.ListSortDirection.Ascending);
dataGrid.SortComparers.Add(new SortComparer()
{
PropertyName = $"Values[{ "OrderID" }]",
Comparer = customComparer
}); dataGrid.GridTapped += DataGrid_GridTapped;.. private void DataGrid_GridTapped(object sender, GridTappedEventArgs e) {
if (e.RowColumnIndex.ColumnIndex == 0 && e.RowColumnIndex.RowIndex == 0)
{
if (customComparer.SortDirection == Syncfusion.Data.ListSortDirection.Ascending)
{
customComparer.SortDirection = Syncfusion.Data.ListSortDirection.Descending;
}
else
{
customComparer.SortDirection = Syncfusion.Data.ListSortDirection.Ascending;
}
} }.... public class CustomComparer : IComparer<Object>, ISortDirection {
public CustomComparer(Syncfusion.Data.ListSortDirection listSortDirection)
{
SortDirection = listSortDirection;
}
public int Compare(object x, object y)
{
var valueOfX = (((DynamicModel)x).Values["OrderID"]).ToString();
var valueOfY = (((DynamicModel)y).Values["OrderID"]).ToString();
int xvalue = Int16.Parse(valueOfX);
int yvalue = Int16.Parse(valueOfY);
if (SortDirection == Syncfusion.Data.ListSortDirection.Ascending)
{
if (xvalue > yvalue)
{
return 0;
}
else if (yvalue > xvalue)
{
return -1;
}
else
{
return 1;
}
}
else if (SortDirection == Syncfusion.Data.ListSortDirection.Descending)
{
if (xvalue < yvalue)
{
return 1;
}
else if (yvalue > xvalue)
{
return 0;
}
else
{
return -1;
}
}
else
{
return -1;
}
}
//Gets or sets the SortDirection value
public Syncfusion.Data.ListSortDirection SortDirection { get; set; } } |