Beispiel #1
0
                public int Compare(object x, object y)
                {
                    //int compareResult;
                    int          image1, image2;
                    ListViewItem listviewX, listviewY;

                    // Cast the objects to be compared to ListViewItem objects ..
                    listviewX = (ListViewItem)x;
                    image1    = listviewX.ImageIndex;
                    listviewY = (ListViewItem)y;
                    image2    = listviewY.ImageIndex;

                    if (image1 < image2)
                    {
                        return(-1);
                    }
                    else if (image1 == image2)
                    {
                        return(ObjectCompare.Compare(listviewX.Text, listviewY.Text));
                    }
                    else
                    {
                        return(1);
                    }
                }
Beispiel #2
0
                /// <summary>
                /// This method is inherited from the IComparer interface.  It compares the two objects passed using a case insensitive comparison.
                /// </summary>
                /// <param name="x">First object to be compared.</param>
                /// <param name="y">Second object to be compared.</param>
                /// <returns>The result of the comparison. "0" if equal, negative if 'x' is less than 'y' and positive if 'x' is greater than 'y'</returns>
                public int Compare(object x, object y)
                {
                    int          compareResult;
                    ListViewItem listviewX, listviewY;

                    // Cast the objects to be compared to ListViewItem objects ..
                    listviewX = (ListViewItem)x;
                    listviewY = (ListViewItem)y;

                    if (ColumnToSort == 0)
                    {
                        compareResult = FirstObjectCompare.Compare(x, y);
                    }
                    else
                    {
                        // Compare the two items ..
                        compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text, listviewY.SubItems[ColumnToSort].Text);
                    }

                    // Calculate correct return value based on object comparison ..
                    if (OrderOfSort == SortOrder.Ascending)
                    {
                        // Ascending sort is selected, return normal result of compare operation ..
                        return(compareResult);
                    }
                    else if (OrderOfSort == SortOrder.Descending)
                    {
                        // Descending sort is selected, return negative result of compare operation ..
                        return(-compareResult);
                    }
                    else
                    {
                        // Return '0' to indicate they are equal ..
                        return(0);
                    }
                }