Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

272
Vistas
Cambiar el formato de fecha de DataGridColumn existente en WPF

Tengo un DataGrid en mi aplicación WPF y su propiedad ItemsSource está configurada en un DataTable. Pero el problema es que la columna de fecha muestra la fecha en el formato "mm/dd/aaaa" y quiere en el formato de fecha "dd/mm/aaaa". Entonces, ¿cuál será la forma más óptima de lograrlo? Como estoy consultando la tabla desde la base de datos de MS Access, siempre recibo la fecha en formato inglés

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Veo dos formas sencillas de establecer la representación de fecha deseada: establecer la referencia cultural (idioma) requerida en DataGrid y la generación automática controlada de columnas.
En la segunda opción, personalizas las columnas que necesitas en el evento AutoGeneratingColumn.

Ejemplo:

 using System; using System.Data; namespace DateColumnFormat { public class DatesSource { public DataTable Table { get; } = new DataTable(); private static readonly Random random = new Random(); private static readonly DateTime begin = new DateTime(1900, 1, 1); private static readonly DateTime end = DateTime.Today; private static readonly double interval = (end - begin).TotalSeconds; public DatesSource() { // Creating one column and ten rows with random dates Table.Columns.Add(new DataColumn("Dates", typeof(DateTime))); for (int i = 0; i < 10; i++) { DataRow newRow = Table.NewRow(); newRow[0] = begin.AddSeconds(random.NextDouble() * interval); Table.Rows.Add(newRow); } } } }

Vista:

 <Window x:Class="DateColumnFormat.FormatTestWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:DateColumnFormat" mc:Ignorable="d" Title="FormatTestWindow" Height="300" Width="500"> <FrameworkElement.DataContext> <local:DatesSource/> </FrameworkElement.DataContext> <UniformGrid Rows="1"> <DataGrid ItemsSource="{Binding Table}"/> <DataGrid ItemsSource="{Binding Table}" Language="ru"/> <DataGrid ItemsSource="{Binding Table}" AutoGeneratingColumn="OnAutoGeneratingColumn"/> </UniformGrid> <x:Code> <![CDATA[ private void OnAutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e) { if (e.PropertyName == "Dates") { var column = (DataGridTextColumn)e.Column; var binding = (Binding)column.Binding; binding.StringFormat = "dd-MMMM-yyyy"; binding.ConverterCulture = System.Globalization.CultureInfo.GetCultureInfo("de-De"); } } ]]> </x:Code> </Window>
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda