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.

È stato utile?

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(); 
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top