У меня есть ListView с несколькими столбцами. SmallImageList ListView содержит три значка; стрелка вверх, стрелка вниз и значок папки. Когда щелкают один из заголовков столбцов, список сортируется по этому значению, и, чтобы проиллюстрировать это, в заголовок вставляется значок, показывающий стрелку вверх или вниз из его SmallImageList. Это прекрасно работает.
Моя проблема в том, что при нажатии на новый столбец для сортировки значок в старом заголовке должен исчезнуть, но это не так. Вместо нее вставляется значок папки. Это происходит каждый раз, когда щелкается новый заголовок, поэтому в конечном итоге все заголовки заполняются значками папок.
Всякий раз, когда щелкается столбец, все столбцы перебираются, и их ImageKey устанавливается в пустую строку, а затем заменяется ImageKey для стрелок, если это был щелкнутый столбец. Пустая строка явно загружает значок папки.
for (int i = 0; i < m_LVCases.Columns.Count; i++)
{
m_LVCases.Columns[i].ImageKey = "";
if (i == e.Column)
{
if (m_ListViewColumnSorter.Order == SortOrder.Ascending)
m_LVCases.Columns[i].ImageKey = SortOrder.Ascending.ToString();
else if (m_ListViewColumnSorter.Order == SortOrder.Descending)
m_LVCases.Columns[i].ImageKey = SortOrder.Descending.ToString();
}
}
Я пока не могу выкладывать скриншоты, так как у меня недостаточно репутации. Есть ли у кого-нибудь решение, чтобы полностью удалить значок из заголовка столбца, или мне нужно сделать какое-то волшебство, чтобы отобразить это по-другому?
--Edit-- Это проект, который я взял на себя, поэтому я пытаюсь собрать все воедино. Я обнаружил, что установка ImageKey для столбца на null
привела к тому, что все заголовки (кроме того, по которому щелкнули) получили значок папки, что для меня очень странно. Я попытался добавить новый значок только с прозрачным цветом. На самом деле это очистило все значки, но оставило пробел там, где должен был быть значок. Есть ли способ вместо этого разместить выравнивание значков справа, чтобы он не перемещал текст заголовка для каждого столбца?