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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar