Problemas com DataSource usando List<T>

12/06/2012

0

Estou com um problema a dias e não consigo entender o que ocorre...

Tenho as seguintes classes:

BllItensSemProgrMap
Essa será a classe que representa a entidade

BllDbItensSemProgr
Essa será a classe de manipulação da entidade, salvar no banco, acrescentar, etc...

Segue as definições...

public class BllItensSemProgrMap
{
private Int64 _seq_tab = 0;
private Int16 _cod_tipo;
private Int16 _cod_cliente;
private string _cod_up;
private DateTime _dt_prog;
private Int16 _qtd;
private string _cor;
private int _cod_tarefa;
private string _desc_geral;
private int _nf_cliente;
private int _serie_nf_cliente;
private int _seq_nf_cliente;
static private Int64 seq_ini = 10000000000;

public BllItensSemProgrMap(Int16 cod_tipo,
Int16 cod_cliente,
string cod_up,
DateTime dt_prog,
Int16 qtd,
string cor,
int cod_tarefa,
string desc_geral,
int nf_cliente,
int serie_nf_cliente,
int seq_nf_cliente)
{
this._seq_tab = GetNextSeqTab();
this._cod_tipo = cod_tipo;
this._cod_cliente = cod_cliente;
this._cod_up = cod_up;
this._dt_prog = dt_prog;
this._qtd = qtd;
this._cor = cor;
this._cod_tarefa = cod_tarefa;
this._desc_geral = desc_geral;
this._nf_cliente = nf_cliente;
this._serie_nf_cliente = serie_nf_cliente;
this._seq_nf_cliente = seq_nf_cliente;
}

private Int64 GetNextSeqTab()
{
seq_ini++;
return seq_ini;
}

public Int64 SeqTab { get { return _seq_tab; } }
public Int16 CodTipo { get { return _cod_tipo; } }
public Int16 CodCliente { get { return _cod_cliente; } }
public string UP { get { return _cod_up; } }
public DateTime DataPrograma { get { return _dt_prog; } }
public Int16 Qtd { get { return _qtd; } }
public string Cor { get { return _cor; } }
public int CodTarefa { get { return _cod_tarefa; } }
public string DescGeral { get { return _desc_geral; } }
public int NF_CLietne { get { return _nf_cliente;} }
public int Serie { get { return _serie_nf_cliente;} }
public int Seq { get { return _seq_nf_cliente; } }

}

public class BllDbItensSemProgr
{
private List<BllItensSemProgrMap> ItensSemProg = new List<BllItensSemProgrMap>();

public Int64 Add(BllItensSemProgrMap item)
{
ItensSemProg.Add(item);
return item.SeqTab;
}

public Int64 Rem(BllItensSemProgrMap item)
{
ItensSemProg.Remove(item);
return item.SeqTab;
}

public bool SalvarItensDB()
{
return true;
}

public int NumItens()
{
return ItensSemProg.Count;
}

public List<BllItensSemProgrMap> GetItens()
{
return ItensSemProg;
}

public bool LimparItens()
{
try
{
ItensSemProg.Clear();
return true;
}
catch
{
return false;
}
}
}

O Problema é o seguinte...
No form após criar diversos elementos para o List<BllItensSemProgrMap> ItensSemProg
usando o método da classe BllDbItensSemProgr Add...

Eu tenho um objeto ItensSemProg dentro da classe BllDbItensSemProgr com os itens...

Entretanto quando eu os coloco em um dataGrid sempre aparece apenas o primeiro elemento da lista...
Já procurei em diversos lugares e não achei a solução...

Alguém pode me ajudar?

Alexandre Silva

Alexandre Silva

Responder

Posts

12/06/2012

Alexandre Silva

Já descobri....
O problema estava na carga do datagride...

Estava assim:
dataGrid1.SetDataBinding(bllDbItemSProg.GetItens(), null);
dataGrid1.Update();

Mas o correto é assim:
dataGrid1.DataSource = null;
dataGrid1.SetDataBinding(bllDbItemSProg.GetItens(), null);
dataGrid1.Update();
Não sei por que mas.. funcionou...
Obrigado!
Responder

12/06/2012

Joel Rodrigues

Só explicando, você estava tentando ´´setar´´ um databinding por cima do outro. Outra forma de fazer seria: grid.DataSource = minhaLista;

Enfim, que bom que você resolveu.
Boa sorte.
Responder

12/06/2012

Alexandre Silva

Só explicando, você estava tentando ´´setar´´ um databinding por cima do outro. Outra forma de fazer seria: grid.DataSource = minhaLista;

Enfim, que bom que você resolveu.
Boa sorte.



Olha só eu fiz assim:
dgItens.DataSource = bllDbItemSProg.GetItens();
dgItens.Update();

Não deu certo....
Ele aparece somente o primeiro...
Lembrando que a cada elemento novo que eu adiciono no List... eu executo isso:
dgItens.DataSource = bllDbItemSProg.GetItens();
dgItens.Update();


Só da certo se eu colocar o null antes...

dgItens.DataSource = null;
dgItens.DataSource = bllDbItemSProg.GetItens();
dgItens.Update();



Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar