Uma das críticas ao WPF é que não havia uma DataGrid para mostrar os dados em formato de tabela. Bem, isso é passado. A Microsoft lançou a Datagrid no WPF toolkit, que pode ser baixado em http://www.codeplex.com/wpf. Ela é bastante poderosa e versátil. Se você não sabe como usá-la, pode checar meu artigo no portal Linha de Código em http://www.linhadecodigo.com.br/Artigo.aspx?id=2163
Vale a pena dar uma conferida!
Bruno, era isto q/ estava faltando. Muito Bom
Valeu.
Bruno, estou formatando a coluna do DataGrid da seguinte forma:
é não consigo colocar o separador de casas decimais das colunas ‘Entrada’ como ( , )
Desde já agradeço sua atenção, atenciosamente,
Rouseman
desenvolvedorr@hotmail.com
Faça o seguinte no binding:
Binding=”{Binding Saida, StringFormat=’#,##0.00′}, ConverterCulture=’pt-BR'”
Bruno
Bruno, show funcionou perfeitamente!
Só um detalhe a ser corrigido a chave fecha no Final…
Binding=”{Binding Saida, StringFormat=’#,##0.00′, ConverterCulture=’pt-BR’}”
Abraços,
Olá Bruno!
Eu vi seu WebCast sobre o dataGrid no MSDN, e tentei fazer o exemplo….
só que o meu VS 2008 parece não ter a mesma configuração, pois não consigo adicionar os componentes da mesma forma que você(arrastar e colar no código) e nem encontrar outros componentes como DataGridColunmHeader e RowStyle.
Tem como me ajudar para fazer essa configuração no meu VS2008?
Você baixou e instalou o WPFToolkit? (http://codeplex.com/wpf)
Baixei sim!
instalei e ele apareceu la na toolbox, mas algumas coisas que voce tinha na sessão general da toolbox eu não consegui encontrar para adicionar, eu consegui fazer o exemplo, mas foi tudo na mão.
Eu queria saber onde é que eu consigo adicionar por exemplo o objectDataProvider, RowStyle e DataGridColunmHeader.
Olá!
Estou aqui novamente e com outra dúvida!
Estou iniciando projeto com banco de dados firebird!
E estou tentando fazer com XAML e datagrid do WPFToolKit.
Mas quando os dados para a data grid, são geradas somente as linhas ficando sem os valores e as colunas.
O meu código c# é esse:
public partial class Window1 : Window
{
public Window1()
{
try
{
InitializeComponent();
DataSet ds = BD.PreencheDataSet(“Select CodMedico, Nome, CRM From Medico Order By CodMedico”, “MEDICO”);
DataTable dt = ds.Tables[“MEDICO”];
ArrayList teste = new ArrayList();
if (dt.Rows.Count > 0)
{
for (int i = 0; dt.Rows.Count > i; i++)
{
teste.Add(dt.Rows[i]);
}
dtgMedicos.ItemsSource = teste;
for (int i = 0; dtgMedicos.Items.Count > i; i++)
{
MessageBox.Show(dtgMedicos.Items[i].ToString());
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
}
e o código XAML é esse:
lsTemplate>
Valeu Bruno, salvou minha pele hahaha.
Parabéns pela ótima cobertura do WPF
Saulo:
O problema é que você está usando o AutoGenerateColumns=”False”
Mude para
AutoGenerateColumns=”True”
Bruno
Opa bsonnino nao estou conseguindo preencher os textbox atraves do duplo clik no grid em wpf voce poderia me ajudar ?
Sera que poderia me ajudar dei uma olhada no seu blog e encontrei uns posts sobre datagrid, mas mesmo com todos eles não estou conseguindo listar dados no meu datagrid, adiciono a conexão mas não lista nada.
Cara se pode me ajudar ficarei grato porque não sei mas o que fazer já fiz de tudo e nada da certo.
Eu testei minha conexão no c# e consegui listar porque la eu uso DataSouse mas no WPF não consigo usar e uso DataContext e não funciona não lista nada.
Segue minha conexão.
//define a string de conexao com provedor caminho e nome do banco de dados
string strProvider = “server=localhost;userid=root;password=cortesolutions10@;database=db_wpf_cad_cliente”;
//define a instrução SQL
string strSql = “SELECT * FROM tb_usuario”;
//cria a conexão com o banco de dados
MySql.Data.MySqlClient.MySqlConnection con = new MySql.Data.MySqlClient.MySqlConnection(strProvider);
//cria o objeto command para executar a instruçao sql
MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(strSql, con);
//abre a conexao
con.Open();
//define o tipo do comando
cmd.CommandType = CommandType.Text;
//cria um dataadapter
MySql.Data.MySqlClient.MySqlDataAdapter da = new MySql.Data.MySqlClient.MySqlDataAdapter(cmd);
//cria um objeto datatable
DataTable usuario = new DataTable();
//preenche o datatable via dataadapter
da.Fill(usuario);
//atribui o datatable ao datagridview para exibir o resultado
CustomerGrid.DataContext = usuario;
Obrigado
Abraço.
André Côrte
Sera que poderia me ajudar dei uma olhada no seu blog e encontrei uns posts sobre datagrid, mas mesmo com todos eles não estou conseguindo listar dados no meu datagrid, adiciono a conexão mas não lista nada.
Cara se pode me ajudar ficarei grato porque não sei mas o que fazer já fiz de tudo e nada da certo.
Eu testei minha conexão no c# e consegui listar porque la eu uso DataSouse mas no WPF não consigo usar e uso DataContext e não funciona não lista nada.
Segue minha conexão.
//define a string de conexao com provedor caminho e nome do banco de dados
string strProvider = “server=localhost;userid=root;password=cortesolutions10@;database=db_wpf_cad_cliente”;
//define a instrução SQL
string strSql = “SELECT * FROM tb_usuario”;
//cria a conexão com o banco de dados
MySql.Data.MySqlClient.MySqlConnection con = new MySql.Data.MySqlClient.MySqlConnection(strProvider);
//cria o objeto command para executar a instruçao sql
MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(strSql, con);
//abre a conexao
con.Open();
//define o tipo do comando
cmd.CommandType = CommandType.Text;
//cria um dataadapter
MySql.Data.MySqlClient.MySqlDataAdapter da = new MySql.Data.MySqlClient.MySqlDataAdapter(cmd);
//cria um objeto datatable
DataTable usuario = new DataTable();
//preenche o datatable via dataadapter
da.Fill(usuario);
//atribui o datatable ao datagridview para exibir o resultado
CustomerGrid.DataContext = usuario;
Obrigado
Abraço.
André Côrte
Você tentou usar a propriedade ItemsSource?
CustomerGrid.ItemsSource = usuario;
Bruno
Bruno, obrigado pela força mas consegui com esta forma o problema estava ocorrendo porque tinha um espaço na instrução mysql.
Abraço.
Bruno, voce teria alguma função que consegue enviar dados de um datagrid em um form para textbox de outro form, pois não estou conseguindo no C# tenho uma função que consigo mas no WPF não estou conseguindo segue minha função que uso no C#.
View.editar.cliente.formEditarCliente _visualizar = new editar.cliente.formEditarCliente();
_visualizar.id_cliente = gridCliente[0, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.nome_cliente = gridCliente[1, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.razao_social = gridCliente[2, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.nome_fantasia = gridCliente[3, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.cpf_cnpj = gridCliente[4, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.email = gridCliente[5, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.skype = gridCliente[6, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.telefone = gridCliente[7, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.celular = gridCliente[8, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.homepage = gridCliente[9, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.logradouro = gridCliente[10, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.numero = gridCliente[11, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.complemento = gridCliente[12, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.cidade = gridCliente[13, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.bairro = gridCliente[14, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.cep = gridCliente[15, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.uf = gridCliente[16, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.data_cadastro = gridCliente[17, gridCliente.CurrentRow.Index].Value.ToString();
_visualizar.StartPosition = FormStartPosition.WindowsDefaultLocation;
_visualizar.ShowDialog();
Use a propriedade SelectedItem da DataGrid. Com ela, você tem todos os dados para colocar na outra janela. Use o DataBinding, que é a maneira correta e muito mais fácil de fazer.
[]s
Bruno