Траблы с Cultureinfo

Тема в разделе ".NET", создана пользователем -, 21 июн 2005.

Статус темы:
Закрыта.
  1. Гость

    Привет!

    У меня такая проблема:
    в таблице ProductsForSpec, выводящей данные sqlDataAdapter'a, нужно отформатировать числовые данные(столбец ECost), так чтобы после десятичной точки было только два знака, разряды чисел должны отделяться запятыми.
    для этого я для таблицы ProductsForSpec пишу таблицу стилей, в которой нужный мне столбец описываю так:

    Код (Text):
    public Specefication()
    {
    .......
    //
    // tbcProductsForSpec_ECost
    //
    this.tbcProductsForSpec_ECost.Alignment = System.Windows.Forms.HorizontalAlignment.Right;
    this.tbcProductsForSpec_ECost.Format = "";
    this.tbcProductsForSpec_ECost.FormatInfo = nfi;
    this.tbcProductsForSpec_ECost.HeaderText = "ECost";
    this.tbcProductsForSpec_ECost.MappingName = "ECost";
    this.tbcProductsForSpec_ECost.Width = 80;
    }
    nfi реализую след образом
    Код (Text):
    public Specefication()
    {
    .......

    private System.Globalization.NumberFormatInfo nfi;
    ....
    private void InitializeComponent()
    {
    ....
    //устанавливаю текущую "культуру" на англ.
    this.nfi=new new CultureInfo( "en-US", false ).NumberFormat;
    ....

    // nfi
    // устанавливаю число знаков после десятич. точки
    this.nfi.NumberDecimalDigits=2;
    //устанавливаю разделитель разрядов
    this.nfi.NumberGroupSeparator=",";
    }
    }
    В общем, это все не работает... может подскажете. что не так? буду очень признательна....
    мои соображения на этот счет: эту культуру я добавляю в приложение программно, т.е. просто дописываю код вручную, из-за этого, когда я перехожу на страницу дизайнера значение свойства this.tbcProductsForSpec_ECost.FormatInfo = nfi; слетает на null. может это потому что ее надо было помещать в проект другим способом, например перетаскивать из списка компонентов(но там я ни CultureUnfo ни NumberFormatInfo не нашла)....

    Я определенно чего-то не понимаю... а сроки уже поджимают...

    Взываю ко всем вам о помощи!
     
  2. Dr.Gigabit

    Dr.Gigabit Гость

    Hi!

    Somethink like this:

    Код (Text):
    private void ChangeColumnCultureInfo()
    {

      System.Globalization.CultureInfo myCultureInfo=  new CultureInfo("en-US");
       
      /* Cast a column that holds numeric values to the  
      DataGridTextBoxColumn type, and set the FormatInfo
      property to the new CultureInfo object. */

      DataGridTextBoxColumn myGridTextBoxColumn =
      (DataGridTextBoxColumn) myDataGrid.TableStyles["MyTableStyle"].
      GridColumnStyles["MyColumnStyle"];

      myGridTextBoxColumn.FormatInfo = myCultureInfo;
      myGridTextBoxColumn.Format = "c";
    }
     
Статус темы:
Закрыта.

Поделиться этой страницей