Что ListViewSubtemCollection использует для своих ключей?

StackOverflow https://stackoverflow.com/questions/160214

  •  03-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь получить значение некоторых ListViewSubItems, но понятия не имею, какие значения он использует для своих ключей.У меня есть простой код:

    protected override void OnItemDrag(ItemDragEventArgs e)
    {
        base.OnItemDrag(e);            
        ListViewItem item = e.Item as ListViewItem;
        string val = item.SubItems[???].ToString(); 
    }       

???часть - это то, где у меня возникла проблема.Не могу понять, что это за ключи.Я безуспешно пробовал имена столбцов ListView.Я хотел бы использовать этот метод вместо использования числовых индексов.

Это было полезно?

Решение

Ключ ListViewSubItem это Name имущество, как описано здесь.

Установка имени, равного имени столбца, позволит вам индексировать подэлементы по имени столбца.

И немного кода в качестве примера

ListViewItem myListViewItem = new ListViewItem();
ListViewItem.ListViewSubItem myListViewSubItem = new ListViewItem.ListViewSubItem();
myListViewSubItem.Text = "This will be displayed";
myListViewSubItem.Name = "my key";
myListViewItem.SubItems.Add(myListViewSubItem);
ListViewItem.ListViewSubItem subItem = myListViewItem.SubItems["my key"];

Другие советы

Вы можете использовать индекс столбца только для добавления подэлементов, но вы можете облегчить чтение, создав перечисление, содержащее индекс каждого из ваших столбцов.

К сожалению, подэлементы упорядочены только по индексу столбца.Итак, вам придется получить к ним доступ, например:

protected override void OnItemDrag(ItemDragEventArgs e)
{
    base.OnItemDrag(e);            
    ListViewItem item = e.Item as ListViewItem;
    string val = item.SubItems[0].ToString(); 
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top