Pergunta

Eu estou tentando obter o valor de alguns ListViewSubItems, mas não tenho idéia de quais os valores que ele usa para suas chaves. Eu tenho algum código simples:

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

O ??? parte é onde eu estou tendo um problema. Eu não posso descobrir o que as teclas são. Eu tentei os nomes do ListView sem sorte coluna. Eu gostaria de usar este método em vez de usar índices numéricos.

Foi útil?

Solução

A chave do ListViewSubItem é propriedade Name como descrito aqui .

Definir o nome igual ao nome da coluna, lhe permitiria índice para os subitens pelo nome da coluna.

E algum código como um exemplo

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"];

Outras dicas

Você só pode usar o índice da coluna para adicionar subitens, mas você pode torná-lo mais fácil de ler, fazendo uma enumeração que contém o índice de cada uma de suas colunas.

SubItems só são ordenados por índice da coluna unluckily. Então você teria que acessá-los como:

protected override void OnItemDrag(ItemDragEventArgs e)
{
    base.OnItemDrag(e);            
    ListViewItem item = e.Item as ListViewItem;
    string val = item.SubItems[0].ToString(); 
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top