Что ListViewSubtemCollection использует для своих ключей?
Вопрос
Я пытаюсь получить значение некоторых 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();
}