UltraWingrid - 字符串列上的千位分隔符

时间:2012-03-15 07:57:38

标签: string format infragistics ultrawingrid

我的ultrawingrid中有一个字符串列,其中包含整数数据。我需要在该列上使用千位分隔符。但是,当我使用format属性时,我意识到它不适用于字符串列。

有人知道怎么做吗?

1 个答案:

答案 0 :(得分:4)

您需要将IDataFilter派生类与列的Editor.DataFilter属性相关联。 假设您有一个名为'NumberCode'的字符串类型的绑定列,将此代码放在网格的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;
    }
}