Pregunta

Estoy tratando de obtener el valor de algunos ListViewSubItems, pero no tengo idea de qué valores utiliza para sus claves. Tengo un código simple:

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

El ??? parte es donde estoy teniendo un problema. No puedo entender cuáles son las llaves. He intentado los nombres de columna de ListView sin suerte. Me gustaría usar este método en lugar de usar índices numéricos.

¿Fue útil?

Solución

La clave del ListViewSubItem es la propiedad Name como se describe here .

Establecer el Nombre igual al nombre de la columna, le permitiría indexar en los Subtítulos por el nombre de la columna.

Y algunos códigos como ejemplo

ListViewItem myListViewItem = new ListViewItem ();
ListViewItem.ListViewSubItem myListViewSubItem = new ListViewItem.ListViewSubItem ();
myListViewSubItem.Text = " Esto se mostrará " ;;
myListViewSubItem.Name = " mi clave " ;;
myListViewItem.SubItems.Add (myListViewSubItem);
ListViewItem.ListViewSubItem subItem = myListViewItem.SubItems [" mi clave "];

Otros consejos

Solo puede usar el índice de columna para agregar subelementos, pero puede facilitar la lectura al hacer una enumeración que contenga el índice de cada una de sus columnas.

Los subelementos solo están ordenados por índice de columna, por desgracia. Así que tendrías que acceder a ellos como:

protected override void OnItemDrag(ItemDragEventArgs e)
{
    base.OnItemDrag(e);            
    ListViewItem item = e.Item as ListViewItem;
    string val = item.SubItems[0].ToString(); 
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top