none
Как вывести время в DataGrid в локализованном виде? RRS feed

  • Вопрос

  • Есть БД MySQL на сервере. Читаю из неё табличку согласно запроса. Один из столбцов таблицы имеет тип DATETIME.

    При выводе в DataGrid получается так: "5/28/2014 3:50:40 PM"

    Как сделать нормальный, русский вид?

    Пробовал так:

    MySqlCommand cmd = conn.CreateCommand();
    cmd.CommandText = sCommand;
    myDataAdapter = new MySqlDataAdapter(cmd);
    myDataSet = new DataSet();
    myDataAdapter.Fill(myDataSet);
    DataTable table = myDataSet.Tables[0];
    DataView dv = table.DefaultView;
                        //foreach (DataColumn dc in dv.Table.Columns)
                        //    if (dc.DataType == typeof(DateTime))
                        //        dc.DateTimeMode = DataSetDateTime.Local;
    dg.ItemsSource = dv;

    Не получается, т.к.  DateTimeMode нельзя менять, если таблица непуста. 

    А как быть? Прошу помощи.

Ответы

  • Добрый день.

    Можно в Binding у столбца прописать StringFormat. Для начала можно посмотреть здесь, а форматы здесь.

    Отвечающий
  •                                <DataGrid x:Name="dg_Orders" ItemsSource="{Binding}" AutoGenerateColumns="False"  Style="{DynamicResource DataGridStyle1}" 
                                      HorizontalGridLinesBrush="AntiqueWhite" VerticalGridLinesBrush="AntiqueWhite" SelectionUnit="FullRow" SelectionMode="Single">
                                        <DataGrid.Columns>
                                            <DataGridTextColumn Header="id" Binding="{Binding id}" Visibility="Collapsed"/>
                                            <DataGridTextColumn Header="Начало" Binding="{Binding start_time, StringFormat={}{0:d.MM.yy H:m}}" />
                                        </DataGrid.Columns>
                                    </DataGrid>

    Спасибо большое!


    10 июня 2014 г. 3:55

Все ответы