public int AddColumnInfo(ColumnTypeInfo infoColumnType) { foreach (ColumnTypeInfo columntypeItem in _listColumInfo) { if (columntypeItem.ColumnIndex == infoColumnType.ColumnIndex) { columntypeItem.ValueType = infoColumnType.ValueType; return(_listColumInfo.Count); } } _listColumInfo.Add(infoColumnType); return(_listColumInfo.Count); }
int IComparer.Compare(object x, object y) { int compResult = 0; ListViewItem lviX, lviY; lviX = (ListViewItem)x; lviY = (ListViewItem)y; ColumnTypeInfo cti = GetColumnInfo(_sortColumnIndex); if (_sortOrder == SortOrder.Ascending) { if (cti == null) { compResult = CompareString(lviX, lviY); return(compResult); } if (cti.ValueType == ColumnType.TypeInteger) { compResult = CompareInteger(lviX, lviY); return(compResult); } else if (cti.ValueType == ColumnType.TypeStringLex) { compResult = CompareStringLex(lviX, lviY); return(compResult); } else { compResult = CompareString(lviX, lviY); return(compResult); } } else if (_sortOrder == SortOrder.Descending) { if (cti == null) { compResult = CompareString(lviX, lviY); return(-compResult); } if (cti.ValueType == ColumnType.TypeInteger) { compResult = CompareInteger(lviX, lviY); return(-compResult); } else if (cti.ValueType == ColumnType.TypeDateTime) { compResult = CompareDateTime(lviX, lviY); return(-compResult); } else if (cti.ValueType == ColumnType.TypeDateTime) { compResult = CompareDateTime(lviX, lviY); return(-compResult); } else { compResult = CompareString(lviX, lviY); return(-compResult); } } else { return(0); } }