none
Ajuda urgente - WPF Datagrid formatar colunas RRS feed

  • Pergunta

  • Boa tarde, preciso de uma ajuda.

    Tenho uma DataGrid em WPF, aonde eu estou trazendo uma query em LINQ com alguns campos do meu banco de dados, os campos de data são trazendo no seguinte formato: 2/11/2011 12:00:00 AM, eu queria que o formato fosse: 11/02/2011 e os campos de valores, estão vindo com . (ponto) ao inves de virgula. Como resolver?


    Ricardo S. Pulini
    quinta-feira, 24 de fevereiro de 2011 19:35

Respostas

Todas as Respostas

  • Ricardo,

    Você está utilizando DataBinding, certo? Então é só utilizar a propriedade StringFormat do Binding para formatar do jeito que você quiser...

    http://blogs.msdn.com/b/vsdata/archive/2009/07/07/customize-format-of-datetime-string-in-wpf-and-winform-data-binding.aspx


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    quinta-feira, 24 de fevereiro de 2011 20:09
    Moderador
  • Oi Andre,

    eu estou iniciando no WPF, então estou meio perdido ainda, meu objeto data Grid, chama-se grade.

    eu fiz uma query linq e depois via programação diz assim:

    grade.itemssource=dados.tolist

    dados é o objeto da query. Agora como eu faria pra formatar as colunas? eu não entendi direito naquele link que vc me passou, se vc puder me explicar, eu gostaria de formatar a coluna 2, com um formato de data simples

    Muuito obrigado.


    Ricardo S. Pulini
    quinta-feira, 24 de fevereiro de 2011 20:32
  • Ricardo,

    Você pode setar o AutoGenerateColumns para false e especificar as colunas direto... Dessa forma, no binding da sua segunda coluna, você seta o StringFormat:

    <Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
      <Grid>
        <DataGrid x:Name="minhaGrid" AutoGenerateColumns="False">
          <DataGrid.Columns>
            <DataGridTextColumn Header="Nome" Binding="{Binding Path=Nome}"/>
            <DataGridTextColumn Header="Data Nascimento" Binding="{Binding Path=DataNascimento, StringFormat=\{0:d\}}"/>
          </DataGrid.Columns>
        </DataGrid>
      </Grid>
    </Window>
    
    

    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    sexta-feira, 25 de fevereiro de 2011 13:06
    Moderador
  • <Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
      <Grid>
        <DataGrid x:Name="minhaGrid" AutoGenerateColumns="False">
          <DataGrid.Columns>
            <DataGridTextColumn Header="Nome" Binding="{Binding Path=Nome}"/>
            <DataGridTextColumn Header="Data Nascimento" Binding="{Binding Path=DataNascimento, StringFormat=\{0:d\}}"/>
            <DataGridTextColumn Binding="{Binding Valor, StringFormat='#,##0.00', ConverterCulture='pt-BR'}" Header="Valor"/>
          </DataGrid.Columns>
        </DataGrid>
      </Grid>
    </Window>
    

    segunda-feira, 7 de maio de 2012 11:45