Usuário com melhor resposta
Como adquirir todos os elementos de um listview?

Pergunta
-
Olá pessoal,
Estou com um grande problema. Tenho procurar em alguns livros, sites, blogs e infelizmente não encontrei resposta para meu problema. Gostaria que alguém pudesse ajudar.
Bom vamos ao problema...
Tenho um arquivo XAML que contém um listview. Segue abaixo o seu código...
<
Window.Resources><TextBlock Text="{Binding Imagem}" />
Na visualização do arquivo, a janela fica assim:
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Item1 | Item2 | Item3 | Item4 |
-------------------------------------------------------------------------------------------------------------------------------------------------------------
TextBox | TextBox | TextBlock | CheckBox |
-----------------
| ADD |
-----------------
Como podem ver,cada coluna tem um controle especifico.
Primaiera cooluna tem um textbox;
Segunda Coluna tem um textbox;
Terceira Coluna tem um textblock;
Quarta coluna um checkBox.
Crie uma classe alternativas onde guardará todas as alternativas inseridas pelo usuário:
public
class Alternativas: ObservableCollection<Alternativa>{
#region
Construtores public Alternativas():
base(){
}
#endregion
}
Há uma classe chamada alternativa que será uma linha inteira do listview. Ela é usada na classe Alternativas
public
class Alternativa{
#region
#endregion
#region
Contrutorespublic Alternativa()
{
inicializaItem();
inicializaDescricaoAlternativa();
inicializaImagem();
inicializaCorreta();
inicializaLinha();
}
#endregion
#region
Membros private void inicializaLinha(){
linha = -1;
}
private void inicializaItem()
{
item = "item";
}
private void inicializaDescricaoAlternativa()
{
this.descricaoAlternativa = "Alternativa";
}
private void inicializaImagem()
{
imagem = " ...";
}
private void inicializaCorreta()
{
correta = true;
}
#endregion
#region
Propriedades public short Linha{
}
{
}
{
}
{
}
{
}
#endregion
}
No code behind do listview, Eu criei um método de adicionar alternativa.
Essse método adiciona apenas uma linha por vez quando o botão inseir é pressionado pelo usuário.
private
void bntAdd_Click(object sender, RoutedEventArgs e){
alternativas.Add(
listView.ItemsSource = alternativas;
}
Este código está funcionando....
Agora vem o problema...
Crie um método que LÊ todas as linhas do listview e obtém os valores dos controles...
Quando o botão visualizar é clicado então o método de leitura é chamado.
Por examplo: Veja a figura abaixo:
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Item | Text | Image | Right |
-------------------------------------------------------------------------------------------------------------------------------------------------------------
A | It is a dog | |Insert Path Image| ... | true |
B | It is a Cat | |Insert Path Image| C:\Cat | false |
C | It is a Horse | |Insert Path Image| ... | false |
-----------------
| Inserir |
-----------------
----------------------
| Visualizar |
----------------------
O que estou querendo fazer é: quando o usuário clicar em visualizar, é então feito uma varredura em toda a listview e vai exibindo linha por linha, ou seja entra na linha, percorre coluna a coluna e lê o valor do controle e exibe na tela.
Então ao ler a primeira linha ele mostrará A, It is a dog, Insert Path Image, true...
Bom pessoal, agradeço desde já pela ajuda. Por favor se puder me ajudar fornecendo um tutorial, exemplo aqui ja agradeço.
Abraços
Respostas
-
Não estou entendendo. Se você fizer:
foreach(var item in ListView1.Items)
{
....
}
Não dá certo?
Bruno- Marcado como Resposta Adriel CodecoModerator sábado, 30 de outubro de 2010 16:13