Ошибка в BLToolkit.ComponentModel.BindingListImpl
От: Rollback Россия  
Дата: 17.03.08 04:16
Оценка:
Мне кажется в BLToolkit.ComponentModel.BindingListImpl.GetItemSortedPosition ошибка. Публикую правильный, на мой взгляд, код.

        public int GetItemSortedPosition(int index, object sender)
        {
            IComparer comparer = GetSortComparer();

            if (comparer == null)
                return index;

            int result     = index > 0 ? comparer.Compare(_list[index - 1], sender) : -1;
            int nextResult = index < _list.Count - 1 ? comparer.Compare(_list[index + 1], sender) : 1;

            if (result > 0 || nextResult < 0)
            {
                for (int i = 0; i < _list.Count; i++)
                {
                    if (i == index)
                        continue;

                    result = comparer.Compare(_list[i], sender);

                    #region alex
                    
                    if (result > 0)
                        return i - 1;

                    /*if (result > 0)
                    {
                        if (index == i - 1)
                            return index;
                                
                        return i;
                    }*/

                    #endregion                    
                }

                return _list.Count - 1;
            }

            return index;
        }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.