public CaseListSort(ListSortDirection direction, DataGridColumn column) { int dir = (direction == ListSortDirection.Ascending) ? 1: -1; string path = BindingOperations.GetBindingExpression(column, DataGridColumn.HeaderProperty).ParentBinding.Path.Path; switch (path) { case "CaseId": myComparer = (a, b) => { return a.CaseId.CompareTo(b.CaseId) * dir; }; break; case "AnalystComment": myComparer = (a, b) => { return a.AnalystComment.CompareTo(b.AnalystComment) * dir;}; break; case "ObjectId": myComparer = (a, b) => { return a.ObjectId.CompareTo(b.ObjectId) * dir;}; break; case "FlightNumber": myComparer = (a, b) => { return a.FlightNumber.CompareTo(b.FlightNumber) * dir; }; break; case "Analyst": myComparer = (a, b) => { return a.Analyst.CompareTo(b.Analyst) * dir; }; break; case "CaseDirectory": myComparer = (a, b) => { return a.CaseDirectory.CompareTo(b.CaseDirectory) * dir; }; break; case "ReferenceImage": myComparer = (a, b) => { return a.ReferenceImage.CompareTo(b.ReferenceImage) * dir; }; break; case "Result": myComparer = (a, b) => { return a.Result.CompareTo(b.Result) * dir; }; break; case "UpdateTime": myComparer = (a, b) => { return a.UpdateTime.CompareTo(b.UpdateTime) * dir; }; break; case "CreateTime": myComparer = (a, b) => { return a.CreateTime.CompareTo(b.CreateTime) * dir; }; break; case "Archived": myComparer = (a, b) => { return a.Archived.CompareTo(b.Archived) * dir; }; break; case "AnalysisTime": myComparer = (a, b) => { return a.AnalysisTime.CompareTo(b.AnalysisTime) * dir; }; break; default: myComparer = (a, b) => { return 0; }; break; } }
/// <summary> /// Performs custom sorting operation. /// </summary> /// <param name="propertyName">Name of the property.</param> /// <param name="direction">The direction.</param> internal void CustomSort(string propertyName, ListSortDirection direction) { int dir = (direction == ListSortDirection.Ascending) ? 1 : -1; // Set a delegate to be called by IComparer.Compare _myCompare = (a, b) => ReflectionCompareTo(a, b, propertyName) * dir; }
public CaseListSort(ListSortDirection direction, DataGridColumn column) { int dir = (direction == ListSortDirection.Ascending) ? 1: -1; string path = BindingOperations.GetBindingExpression(column, DataGridColumn.HeaderProperty).ParentBinding.Path.Path; switch (path) { case "CaseId": myComparer = (a, b) => { return(a.CaseId.CompareTo(b.CaseId) * dir); }; break; case "AnalystComment": myComparer = (a, b) => { return(a.AnalystComment.CompareTo(b.AnalystComment) * dir); }; break; case "ObjectId": myComparer = (a, b) => { return(a.ObjectId.CompareTo(b.ObjectId) * dir); }; break; case "FlightNumber": myComparer = (a, b) => { return(a.FlightNumber.CompareTo(b.FlightNumber) * dir); }; break; case "Analyst": myComparer = (a, b) => { return(a.Analyst.CompareTo(b.Analyst) * dir); }; break; case "CaseDirectory": myComparer = (a, b) => { return(a.CaseDirectory.CompareTo(b.CaseDirectory) * dir); }; break; case "ReferenceImage": myComparer = (a, b) => { return(a.ReferenceImage.CompareTo(b.ReferenceImage) * dir); }; break; case "Result": myComparer = (a, b) => { return(a.Result.CompareTo(b.Result) * dir); }; break; case "UpdateTime": myComparer = (a, b) => { return(a.UpdateTime.CompareTo(b.UpdateTime) * dir); }; break; case "CreateTime": myComparer = (a, b) => { return(a.CreateTime.CompareTo(b.CreateTime) * dir); }; break; case "Archived": myComparer = (a, b) => { return(a.Archived.CompareTo(b.Archived) * dir); }; break; case "AnalysisTime": myComparer = (a, b) => { return(a.AnalysisTime.CompareTo(b.AnalysisTime) * dir); }; break; default: myComparer = (a, b) => { return(0); }; break; } }
public MylistSort(ListSortDirection direction, DataGridColumn column) { int dir = (direction == ListSortDirection.Ascending) ? 1 : -1; int result = 0; m_listCompare = (a, b) => { switch (column.Header as string) { case "Title": return(String.Compare(a.title, b.title, CultureInfo.CurrentCulture, CompareOptions.OrdinalIgnoreCase) * dir); case "Eps": result = a.eps_have.CompareTo(b.eps_have); if (result == 0) { result = a.eps_total.CompareTo(b.eps_total); } if (result == 0) { result = a.spl_have.CompareTo(b.spl_have); } if (result == 0) { goto Title; } return(result * dir); case "Watched": result = a.eps_watched.CompareTo(b.eps_watched); if (result == 0) { result = a.eps_total.CompareTo(b.eps_total); } if (result == 0) { result = a.spl_watched.CompareTo(b.spl_watched); } if (result == 0) { goto Title; } return(result * dir); case "Year": result = a.year.CompareTo(b.year); if (result == 0) { goto Title; } return(result * dir); case "Length": result = a.length.CompareTo(b.length); if (result == 0) { goto Title; } return(result * dir); case "Size": result = a.size.CompareTo(b.size); if (result == 0) { goto Title; } return(result * dir); } Title: return(String.Compare(a.title, b.title, CultureInfo.CurrentCulture, CompareOptions.OrdinalIgnoreCase) * 1); }; }