Мы обновляем дизайн наших списков, чтобы пользователь мог выбрать столбцы, которые он хотел бы отобразить.
Чтобы не мешать преобразованию Key-To-Column-Index
при заполнении списка, мы хотели бы поддерживать «базовый» порядок столбцов, затем использовать display-index и (?) Visible-атрибут на определенные столбцы, чтобы настроить вид.
т.е. базовая таблица выглядит как
id | name | date
, она заполнена данными типа
ListViewItem lvi = new ListViewItem();
lvi.Text = someObject.ID;
lvi.SubItems.Add(someObject.Name);
lvi.SubItems.Add(someObject.Date);
...
ListView1.Items.AddRange(CollectionOfListViewItems);
Если пользователь теперь выбрал порядок отображения id | date | name
, это может бытьлегко достигается (без изменения кода, который генерирует ListViewItems), просто изменяя значение displayindex определенного столбца.
Тем не менее, если пользователь хочет исключить столбец, существует обычная практика устанавливать ширину равной 0. Но это приводит к тому, что люди, которые пытаются расширить любой столбец, иногда просто расширяют столбец.с шириной 0 и запутались, что происходит.
Есть ли способ правильно скрыть столбец от отображаемой информации, фактически не удаляя столбец из списка?(При удалении столбца могут потребоваться корректировки в генерирующем коде, иначе заголовки / значения больше не будут правильно выровнены).