Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

edibertoalves

modelagem de classes

Recommended Posts

Dúvida em modelagem de classes

 

Olá pessoal, estou com a seguinte dúvida nos meus estudos de POO, eu criei duas classes "Pessoa" e "Endereço" seguindo a lógica de relacionamento entre casses. Uma pessoa pode ter N endereços e um endereço pode ser atribuído a uma pessoa. Montei as duas classes da seguinte forma:

 

    public class Pessoa
    {
        public string Nome { get; set; }

        public Endereco endereco;

        public void cadastraPessoa(string pNome, Endereco pEnd)
        {
            Nome = pNome;
            endereco = pEnd;
        }
    }

e a classe endereço:

 

    public class Endereco
    {
        public string Rua { get; set; }
        public string Bairro { get; set; }
	public string Cidade {get; set; }
    }

Até aí tudo bem... estou conseguindo passar os dados nas propriedades conforme está sendo implementado no form. Criei uma List da classe Pessoa que recebe os dados provenientes dos objetos da classe Pessoa.

Eu recupero o list e seto o DataSource num DataGridView mas só exibe a propriedade nome da classe Pessoa e não os objetos da classe Endereço. O código segue abaixo:

 

        Pessoa oPessoa = new Pessoa();
        Endereco oEnd = new Endereco();
        List<Pessoa> vLista = new List<Pessoa>();

        private void button1_Click(object sender, EventArgs e)
        {
            oEnd.Rua = txtEnd.Text;
            oEnd.Bairro = txtBairro.Text;
            oEnd.Cidade = txtCidade.Text;
            
            oPessoa.cadastraPessoa(txtNome.Text, oEnd);

            vLista.Add(oPessoa);

            dataGridView1.DataSource = null;

            dataGridView1.AutoGenerateColumns = true;
            dataGridView1.DataSource = vLista;

        }

O que estou fazendo de errado?

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz eu sinceramente não sei se da para dar um Source com List, eu esses dias tive que fazer isso tb, eu preenchi um DataTable e dele preenchi o Grid.

 

Acho melhor você tentar com DataTable..

 

tipo..

 

DataTable pessoa = new DataTable();
DataRow drPessoa;

declara as colunas do DataTable.....

 

pessoa.Columns.Add("Nome");

Loop para preencher o dataTable

 

int i = 0
foreach(EntidadePessoa objPessoa in list)
{
 drPessoa = new pessoa.NewRow();
 drPessoa["Nome"] = list[i].Nome;
 pessoa.Rows.Add(drPessoa);
}

depois:

 

grid.DataSource = pessoa;

 

Dúvida em modelagem de classes

 

Olá pessoal, estou com a seguinte dúvida nos meus estudos de POO, eu criei duas classes "Pessoa" e "Endereço" seguindo a lógica de relacionamento entre casses. Uma pessoa pode ter N endereços e um endereço pode ser atribuído a uma pessoa. Montei as duas classes da seguinte forma:

 

 public class Pessoa
 {
 public string Nome { get; set; }

 public Endereco endereco;

 public void cadastraPessoa(string pNome, Endereco pEnd)
 {
 Nome = pNome;
 endereco = pEnd;
 }
 }

e a classe endereço:

 

 public class Endereco
 {
 public string Rua { get; set; }
 public string Bairro { get; set; }
 public string Cidade {get; set; }
 }

Até aí tudo bem... estou conseguindo passar os dados nas propriedades conforme está sendo implementado no form. Criei uma List da classe Pessoa que recebe os dados provenientes dos objetos da classe Pessoa.

Eu recupero o list e seto o DataSource num DataGridView mas só exibe a propriedade nome da classe Pessoa e não os objetos da classe Endereço. O código segue abaixo:

 

 Pessoa oPessoa = new Pessoa();
 Endereco oEnd = new Endereco();
 List<Pessoa> vLista = new List<Pessoa>();

 private void button1_Click(object sender, EventArgs e)
 {
 oEnd.Rua = txtEnd.Text;
 oEnd.Bairro = txtBairro.Text;
 oEnd.Cidade = txtCidade.Text;
 
 oPessoa.cadastraPessoa(txtNome.Text, oEnd);

 vLista.Add(oPessoa);

 dataGridView1.DataSource = null;

 dataGridView1.AutoGenerateColumns = true;
 dataGridView1.DataSource = vLista;

 }

O que estou fazendo de errado?

Obrigado

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.