Como carregar um objeto dentro de outro objeto no DataGridView Windows Forms?

Estou com dificuldades pra carregar os dados no DataGridView (Windows form Application) porque eu tenho um objeto dentro de outro objeto.Não sei se me expressei bem

Desculpem caso não fiz bem a postagem da minha dúvida.

att

Poste esse objeto dentro do outro objeto, poste o código!

namespace Apresentacao
{
    public partial class FrmPessoaFisicaSelecionar : Form
    {
        public FrmPessoaFisicaSelecionar()
        {
            InitializeComponent();

            dgvPessoaFisica.AutoGenerateColumns = false;
        }

        private void btnPesquisar_Click(object sender, EventArgs e)
        {
            if (txtPesquisa.Text == "")
            {
                MessageBox.Show("Digite o que desejas pesquisar");
            }

            else
            {
                AtualizarGrid();
            }
        }

        private void AtualizarGrid()
        {
            PessoaFisicaNegocios pessoaFisicaNegocios = new PessoaFisicaNegocios();

            PessoaFisicaCollection pessoaFisicaCollection = new PessoaFisicaCollection();

            int idPessoaFisica;

            if (int.TryParse(txtPesquisa.Text, out idPessoaFisica) == true)
            {
                pessoaFisicaCollection = pessoaFisicaNegocios.ConsultarPessoaFisicaPorCodigo(idPessoaFisica);
            }
            else
            {
                pessoaFisicaCollection = pessoaFisicaNegocios.ConsultarPessoaFisicaPorNome(txtPesquisa.Text);
            }

            dgvPessoaFisica.DataSource = null;
            dgvPessoaFisica.DataSource = pessoaFisicaCollection;

            dgvPessoaFisica.Update();
            dgvPessoaFisica.Refresh();
        }

        private void btnFechar_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void btnExcluir_Click(object sender, EventArgs e)
        {
            if (dgvPessoaFisica.SelectedRows.Count == 0)
            {
                MessageBox.Show("Nenhuma Pessoa Fisica foi selecionada.");
                return;
            }

            DialogResult resultado = MessageBox.Show("Tem certeza que deseja excluir?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (resultado == DialogResult.No)
            {
                return;
            }

            PessoaFisica pessoaFisicaSelecionada = (dgvPessoaFisica.SelectedRows[0].DataBoundItem as PessoaFisica);

            PessoaFisicaNegocios pessoaFisicaNegocios = new PessoaFisicaNegocios();

            string retorno = pessoaFisicaNegocios.Excluir(pessoaFisicaSelecionada);
            try
            {
                int idPessoaFisica = Convert.ToInt32(retorno);

                MessageBox.Show("Produto excluido com sucesso.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);

                AtualizarGrid();
            }
            catch
            {

                MessageBox.Show("Não foi possível excluir. Detalhes: " + retorno, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }
        }

        private void btnInserir_Click(object sender, EventArgs e)
        {
            FrmPessoaFisicaCadastrar frmPessoaFisicaCadastrar = new FrmPessoaFisicaCadastrar(AcaoNaTela.Inserir, null);
            DialogResult dialogResult = frmPessoaFisicaCadastrar.ShowDialog();

            if (dialogResult == DialogResult.Yes)
            {
                AtualizarGrid();
            }

        }

        private void btnConsultar_Click(object sender, EventArgs e)
        {
            if (dgvPessoaFisica.SelectedRows.Count == 0)
            {
                MessageBox.Show("Nenhuma pessoa física selecionado.");
                return;
            }

            PessoaFisica pessoaFisicaSelecionada = (dgvPessoaFisica.SelectedRows[0].DataBoundItem as PessoaFisica);

            FrmPessoaFisicaCadastrar frmPessoaFisicaConsultar = new FrmPessoaFisicaCadastrar(AcaoNaTela.Consultar, pessoaFisicaSelecionada);
            frmPessoaFisicaConsultar.ShowDialog();
        }
    }
}
using System;

namespace ObjetoTransferencia
{
    public class PessoaFisica
    {
        public Pessoa Pessoa { get; set; }
        public String Nome { get; set; }
        public String CPF { get; set; }
        public String  RG { get; set; }
        public DateTime DataNascimento { get; set; }
    }
}

ConsultarPessoaFisicaPorNome e ConsultarPessoaFisicaPorCodigo retorna uma lista do que ?

Retorna uma Lista de Pessoas Físicas.
O sistema fará dois tipos de consultas, por código e por nome

essa configuração dgvPessoaFisica.AutoGenerateColumns = false; vai limitar a construção do seu DataGridView se o mesmo não estiver formatado!

Você formatou seu DataGridView com os campos ?

Não formatei. como faço?? no caso de em que se acessa as propriedades de uma outra classe??

No DataGridView se você desabilitar isso: dgvPessoaFisica.AutoGenerateColumns = false;, você precisa entrar nas configurações do DataGridView e adicionar as colunas e configurar.

Faça o teste coloque dgvPessoaFisica.AutoGenerateColumns = true; e rode perceba que vai carregar o DataGridView.

Obrigado pela dica. Dragoon

1 curtida