UltraWingrid - разделитель тысяч в столбце строки - PullRequest
0 голосов
/ 15 марта 2012

У меня в столбце UltraWrid есть строковый столбец, который содержит целочисленные данные.Мне нужно использовать разделитель тысяч в этом столбце.Но когда я использовал свойство format, я понял, что оно не работает со строковым столбцом.

Кто-нибудь знает, как это сделать?

1 Ответ

4 голосов
/ 15 марта 2012

Вам необходимо связать производный класс IDataFilter со свойством Editor.DataFilter вашего столбца.Предположим, например, что у вас есть связанный столбец с именем NumberCode типа string, поместите этот код в событие InitializeLayout вашей сетки

UltraGridColum cl = e.DisplayLayout.Bands[0].Columns["NumberCode"];
cl.Editor.DataFilter = new ThousandSeparator();

, а затем создайте простой класс, который реализует интерфейс IDataFilter, например:

public class ThousandFormatter : IEditorDataFilter
{
    public ThousandFormatter()
    { }

    public object Convert(EditorDataFilterConvertArgs conversionArgs)
    {
        if (conversionArgs.Direction == ConversionDirection.OwnerToEditor)
        {
            UltraGridCell cell = conversionArgs.Context as UltraGridCell;
            if (cell != null && cell.Column.Key == "NumberCode")
            {
                conversionArgs.Handled = true;
                decimal dValue = System.Convert.ToDecimal(conversionArgs.Value);
                return dValue.ToString("#,##0");
            }
        }
        return conversionArgs.Value;
    }
}
...