public static void SortItemGenericList(System.Windows.Controls.ItemCollection _list, bool atoz, bool top, bool recent, int len_number_prefix, int len_date_prefix, bool asc, bool consider_first_item)
{
List<nature_net.user_controls.item_generic_v2> new_list = new List<user_controls.item_generic_v2>();
int init = 0; int j = 0;
if (!consider_first_item)
{
init = 1;
new_list.Add((nature_net.user_controls.item_generic_v2)_list[0]);
j=1;
}
int i = init;
new_list.Add((nature_net.user_controls.item_generic_v2)_list[j]); j++;
for (; j < _list.Count; j++)
{
nature_net.user_controls.item_generic_v2 current = (nature_net.user_controls.item_generic_v2)_list[j];
i = init;
while (i < new_list.Count && IsFirstItemGreaterThanSecond(current, (nature_net.user_controls.item_generic_v2)new_list[i], atoz, top, recent, len_number_prefix, len_date_prefix, !asc))
i++;
if (i < new_list.Count)
new_list.Insert(i, current);
else
new_list.Add(current);
}
_list.Clear();
foreach (object o in new_list)
_list.Add(o);
//for (int i = init; i < _list.Count; i++)
// for (int j = i + 1; j < _list.Count; j++)
// if (IsFirstItemGreaterThanSecond((nature_net.user_controls.item_generic)_list[j], (nature_net.user_controls.item_generic)_list[i], atoz, top, recent, len_number_prefix, len_date_prefix, asc))
// {
// nature_net.user_controls.item_generic item1 = ((nature_net.user_controls.item_generic)_list[i]).get_clone();
// nature_net.user_controls.item_generic item2 = ((nature_net.user_controls.item_generic)_list[j]).get_clone();
// _list.Remove(_list[i]);
// _list.Insert(i, item2);
// _list.Remove(_list[j]);
// _list.Insert(j, item1);
// //nature_net.user_controls.item_generic item1 = ((nature_net.user_controls.item_generic)_list[i]);
// //nature_net.user_controls.item_generic item2 = ((nature_net.user_controls.item_generic)_list[j]).get_clone();
// //_list[i] = _list[j];
// //_list[j] = item1;
// //_list.Remove(_list[i]);
// //_list.Insert(i, item2);
// //_list.Remove(_list[j]);
// //_list.Insert(j, item1);
// }
}