Exemplo n.º 1
0
        private void SearchResult_ColumnClick(object sender , ColumnClickEventArgs e)
        {
            var sorter = m_lvSearchResult.ListViewItemSorter as IColumnSorter;
            ColumnDataType_t dataType = (ColumnDataType_t)m_lvSearchResult.Columns[e.Column].Tag;

            if (sorter == null)
            {
                sorter = GetColumnSorter(dataType);
                sorter.ColumnIndex = e.Column;
                m_lvSearchResult.ListViewItemSorter = sorter;
            }
            else if (sorter.ColumnIndex != e.Column)
            {
                m_lvSearchResult.SetColumnHeaderSortIcon(sorter.ColumnIndex , SortOrder.None);
                sorter = GetColumnSorter(dataType);
                sorter.ColumnIndex = e.Column;
                sorter.SortDescending = false;
                m_lvSearchResult.ListViewItemSorter = sorter;
            }
            else
                sorter.SortDescending = !sorter.SortDescending;


            m_lvSearchResult.Sort();
            m_lvSearchResult.SetColumnHeaderSortIcon(e.Column , sorter.SortDescending ? SortOrder.Descending :
                SortOrder.Ascending);
        }
Exemplo n.º 2
0
        IColumnSorter GetColumnSorter(ColumnDataType_t dataType)
        {
            IColumnSorter sorter;

            if (!m_colSorters.TryGetValue(dataType , out sorter))
            {
                switch (dataType)
                {
                    case ColumnDataType_t.Text:
                    sorter = new TextColumnSorter();
                    break;

                    case ColumnDataType_t.Integer:
                    sorter = new IntegerColumnSorter();
                    break;

                    case ColumnDataType_t.Float:
                    sorter = new FloatColumnSorter();
                    break;

                    case ColumnDataType_t.Time:
                    sorter = new TimeColumnSorter();
                    break;

                    default:
                    Assert(false);
                    break;
                }

                m_colSorters[dataType] = sorter;
            }


            return sorter;
        }