예제 #1
0
        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;
            }
        }
예제 #2
0
        /// <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;
        }
예제 #3
0
        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;
            }
        }
예제 #4
0
        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);
            };
        }