Continuando nossa agenda WPF

Utilizando o Blend construí a interface conforme figura 1 abaixo

figura1-2

No último post foi mencionado que iríamos “converter” o resultado do método getPessoas para o tipo ObservableCollection<>. Então em Window1.xaml.cs criei uma classe People conforme listagem abaixo.

 

   1:  public class People : ObservableCollection<Pessoa>
   2:      {
   3:          public People()
   4:              : base()
   5:          {
   6:              PessoaDAO dao = new PessoaDAO();
   7:              List<Pessoa> lista = new List<Pessoa>();
   8:              lista = dao.getPessoas();
   9:              if (lista.Count > 0)
  10:              {
  11:                  foreach (Pessoa obj in lista)
  12:                  {
  13:                      Add(obj);
  14:                  }
  15:              }
  16:   
  17:          }
  18:      }

 

Com isso pronto, vamos utilizar nossa classe People como um DataSource para o ListBox. No painel Data clicamos sobre o botão [+CLRObject] e na janela que surge, escolhemos a classe People, conforme figura abaixo

figura 2-2

Ao adicionar a classe People como um DataSource o blend automaticamente ajusta para nós o código xaml tornando esse DataSource um recurso disponível. Veja isso no trecho abaixo do código xaml.

<Window.Resources>
    <ObjectDataProvider x:Key="PeopleDS" d:IsDataSource="True" ObjectType="{x:Type Agenda:People}"/>
</Window.Resources>

Com o DataSource disponível, agora é possível fazer o binding. Então clicamos com o botão direito no ListBox e no menu que aparece, escolhemos a opção “Bind ItemsSource to Data”. Veja figura abaixo.

figura 3-2

Na janela que aparece, vamos escolher o datasource, dando um clique duplo sobre ele e então clicar no botão Finish. Veja figura abaixo.

 

figura 4-2

A linha no XAML referente o ListBox foi alterada pra representar a situação de binding.

<ListBox Margin="54,184,40,53" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Mode=OneWay, Source={StaticResource PeopleDS}}"/>

Salve o projeto. Se você tentar executar pelo Blend, vai gerar um erro (não sei porque), mas se você abrir o projeto no VS, tudo funciona perfeitamente.

No próximo post, vamos criar uma tela para inserção das Pessoas na nossa agenda. Pontanto, não percam.

Esse post foi publicado em WPF. Bookmark o link permanente.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s