Usuário com melhor resposta
Criando uma Grade com o DataGrid

Pergunta
-
Pessoal, estou com dúvidas sobre como criar uma grade de produtos (Tamanho x Cor).
Eu gostaria de utilizar o componente DataGrid nativo do .Net Compact Framework 2.0 para realizar tal tarefa.
Vou criar um formulário para adicionar produtos, mas estes produtos variam em Tamanho e cor, portanto, preciso de uma Grade. Mas para construir esta grade tenho que acrescentar as colunas e as linhas dinamicamente.
Minha dúvida é como griar um DataGrid vazio com os itens da grade como um rótulo no DataGrid?
Exemplo:
P M G
01 1 3
02 2
Aqui selecionei 1 unidade de um determinado produto na cor 01 e para o tamanho P, depois mais 3 unidades do tamanho M na cor 01 e assim por diante.
Eu já vi e utilizei uma demo de um componente SmartGrid da resco que é bem simples de manipulá-lo, mas é pago e é relativamente caro.
Será que alguém pode me dar uma ajuda de como resolver este problema no DataGrid ou até mesmo em algum outro componente?
Até a próxima...
Respostas
-
Então, sabe como é, até dá pra conseguir, só que é trampo heim..... vc poderia fazer o seguinte, seta a propriedade RowHeadersVisible para false, assim ele não vai exibir o header da linha, e utilizando o evento Paint do grid, voce pinta o fundo da primeira coluna para dar um destaque nela..... o Datagrid é bem limitado se comparado com o do Desktop ou Web, a saída mais rápida mesmo é procurar controle de terceiros.....
Abraços
Todas as Respostas
-
Voce já tntou fazer o seguinte :
- Crie 2 classes com a estrutura :
Code Snippetpublic class Grade
{
private string _P;public string P
{
get { return _P; }
set { _P = value; }
}
private string _M;public string M
{
get { return _M; }
set { _M = value; }
}
private string _G;public string G
{
get { return _G; }
set { _G = value; }
}
private string _GG;public string GG
{
get { return _GG; }
set { _GG = value; }
}
private string _Cor;public string Cor
{
get { return _Cor; }
set { _Cor = value; }
}}
public class ListaGrade: List<Grade>
{}
Utilize a classe ListaGrade como origem do DataGrid.DataSource, e formate a coluna Cor para não ser exibida e nem exibir o "cabeçalho" das linhas....
agora gerar as colunas de forma dinâmica só se voce montar tudo na query, e utilizar um DataTable para popular o grid.
É isso ou eu viajei ?
-
Julio,
É mais ou menos isso.
Eu já tenho até estas classes montadas, o meu problema é definir os itens das linhas. Pois o usuário deve visualizar o rótulo das colunas e das linhas. No rótulo das colunas aparecer os tamanhos e nas linhas a cor, por exemplo.
Existe alguma forma de mostrar e editar os rótulos das linhas de um DataGrid?
-
Então, sabe como é, até dá pra conseguir, só que é trampo heim..... vc poderia fazer o seguinte, seta a propriedade RowHeadersVisible para false, assim ele não vai exibir o header da linha, e utilizando o evento Paint do grid, voce pinta o fundo da primeira coluna para dar um destaque nela..... o Datagrid é bem limitado se comparado com o do Desktop ou Web, a saída mais rápida mesmo é procurar controle de terceiros.....
Abraços