Приветствую.
Win-форма. На форме ListView и Button. Всё по умолчанию — сгенерируйте их сами, если надумаете попробовать.
Также есть два класса (неважно какие):
public class Class1
{
public string Name { get; set; }
}
и
public class Class2
{
public object Value { get; set; }
}
При нажатии на кнопку в ListView добавляется пара ListViewItem у которых в Tag присвоен класс Class1.
Код формы:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
listView1.ListViewItemSorter = new ListComparer();
}
private void button1_Click(object sender, EventArgs e)
{
Class1 class1 = new Class1();
ListViewItem lvi = new ListViewItem {Tag = class1,Text = "1"};
ListViewItem lvi1 = new ListViewItem { Tag = class1, Text = "2"};
listView1.Items.Add(lvi);
listView1.Items.Add(lvi1);
}
}
А вот в коде сортировщика:
class ListComparer : System.Collections.IComparer
{
public int Compare(object x, object y)
{
Class2 oX = (Class2)((ListViewItem)x).Tag;
Class1 oY = (Class1)((ListViewItem)y).Tag;
return 0;
}
}
свойство Tag преобразуем не к Class1, а к Class2.
Компилируем.
1. Запускаем под студии — всё ОК.
2. Запускаем без студии — Exception.
Это лечится?