Cosa utilizza un ListViewSubtemCollection per le sue chiavi?
Domanda
Sto cercando di ottenere il valore di alcuni ListViewSubItems, ma non ho idea di quali valori utilizzi per le sue chiavi. Ho un po 'di codice semplice:
protected override void OnItemDrag(ItemDragEventArgs e)
{
base.OnItemDrag(e);
ListViewItem item = e.Item as ListViewItem;
string val = item.SubItems[???].ToString();
}
Il ??? parte è dove sto avendo un problema. Non riesco a capire quali siano le chiavi. Ho provato i nomi delle colonne di ListView senza fortuna. Vorrei usare questo metodo invece di usare indici numerici.
Soluzione
La chiave del ListViewSubItem
è la proprietà Name
come descritto qui .
Impostando il Nome uguale al nome della colonna, ti permetterebbe di indicizzare gli oggetti secondari in base al nome della colonna.
E un po 'di codice come esempio
ListViewItem myListViewItem = new ListViewItem ();
ListViewItem.ListViewSubItem myListViewSubItem = new ListViewItem.ListViewSubItem ();
myListViewSubItem.Text = " Questo verrà visualizzato " ;;
myListViewSubItem.Name = " my key " ;;
myListViewItem.SubItems.Add (myListViewSubItem);
ListViewItem.ListViewSubItem subItem = myListViewItem.SubItems [" my key "];
Altri suggerimenti
Puoi solo utilizzare l'indice di colonna per aggiungere elementi secondari, ma puoi renderne più semplice la lettura creando un elenco contenente l'indice di ciascuna delle tue colonne.
I sotto-elementi sono ordinati solo per indice di colonna sfortunatamente. Quindi dovresti accedervi come:
protected override void OnItemDrag(ItemDragEventArgs e)
{
base.OnItemDrag(e);
ListViewItem item = e.Item as ListViewItem;
string val = item.SubItems[0].ToString();
}