Como posso vincular um DataTable a um DataRepeater (Windows Powerpack) em tempo de execução?

StackOverflow https://stackoverflow.com/questions/6046499

Pergunta

Atualmente estou tentando usar o controle Windows Powerpack DataRepeater para exibir dados de um DataTable.

Até agora, o DataRepeater reconhece que o DataTable resultante chamado do banco de dados tem 8 linhas, mas não consegui obter as 3 caixas de texto (que coloquei no ItemTemplate do meu DataRepeater) para mostrar os dados reais no referido linhas.

DataTable DT = BL.GetDataTable();
BindingSource bSource = new BindingSource();
bSource.DataSource = DT;
DR.DataSource = bSource;

txtEmail.DataBindings.Add("Text", bSource, "Email");
txtID.DataBindings.Add("Text", bSource, "ID");
txtName.DataBindings.Add("Text", bSource, "Name");

Assim, uma vez visualizado o DataRepeater(DR), você poderá ver 8 linhas.Se as caixas de texto fizerem parte do DR, elas serão repetidas em cada uma dessas 8 linhas, mas sem dados.

Se eu remover as caixas de texto e colocá-las diretamente no formulário, ao navegar pelo DR, as caixas de texto mostrarão os dados correspondentes.Qual não é o comportamento que estou procurando.

Alguém sabe como fazer com que as caixas de texto mostrem os dados E façam parte do DataRepeater?

Foi útil?

Solução

Eu sei que é um pouco tarde, mas mesmo assim, se você ainda não encontrou a resposta, postarei este artigo para garantir.

Eu tive o mesmo problema que resolvi vinculando primeiro os elementos aos dados e só depois fiz a ligação do repetidor de dados.Então seu código deve ficar assim:

    txtEmail.DataBindings.Add("Text", "", "Email");
    txtID.DataBindings.Add("Text", "", "ID");
    txtName.DataBindings.Add("Text", "", "Name");

    DataTable DT = BL.GetDataTable();
    bSource.DataSource = DT;
    DR.DataSource = bSource;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top