• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

saramgsilva

Key numa instancia da ListiViewItem não existe na library?

6 mensagens neste tópico

boas,

bem eu precisava de ter algo:

ListViewItem item = new ListViewItem();

item.Key="chave1";

item.Text=" bla bla";

em que a propriedade Key é a chave da linha da listview....isto não existe implementado na framework .Net? Pois não...

O que eu poderei fazer é, criar uma subclasse de ListViewItem e criar uma propriedade Key.

bom trabalho

tofas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei se é isso que queres, mas o ListViewItem tem a propriedade Name que acho que funciona como uma chave do ponto de vista de uma colecção.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se apenas precisas de uma propriedade onde possas guardar uma string podes usar a Tag:

ListViewItem item = new ListViewItem();

item.Tag = "chave1";
item.Text = "bla bla";

e depois usas assim:

string chave = (string)item.Tag;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só para dizer que não se deve fazer casting, a não ser que seja estritamente desnecessário. Já que casting é uma má prática, torna o código mais error-prone. Por algum motivo é que a programação genérica foi tão desejada.

string chave = (string)item.Tag;

Neste caso, aconselhava fazer antes.

String chave = item.Tag.ToString();

Assim, mesmo se por algum motivo desconhecido que só Deus sabe e não estiver lá uma String, o programa não gera fogo de artifício.

Caso não seja casting para Strings, ou seja, o método ToString() não server. Para isso tens o operador as. Neste caso seria.

String chave = item.Tag as String;

Assim é muito melhor porque não gera fogo de artifício caso a Tag não seja uma String. Mas não é perfeito porque pode vir ainda a gerar, porque caso a Tag não seja uma String, a tua variável chave irá ficar com o valor null, portanto posteriormente seria bom avaliar isso também. Tens o bónus do teu código ficar mais legível.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas,

desde já obrigada pela ajuda! Valeu cara  :)

tive a pesquisar e encontrei isto:

ListViewItem

The value of the Name property is also the key for the ListViewItem when the item is accessed in a collection.

The Tag property can be used to store any object that you want to associate with an item. Although you can store any item, the Tag property is typically used to store string information about the item, such as a unique identifier or the index position of the item's data in a database.

Eu conclui que o que eu preciso mesmo é item.Name="Key"  e isto irá dar uma definição única á linha da listview e associado ao objecto!

bom trabalho

tofas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

podes usar um dictionary :( faz o mesmo tem um campo para a key e outro pra kalker tipo de objecto k keiras chamar ao fazeres referencias a key

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora