编辑时小数列的 RadGridView 千位分隔符

问题描述

我可以像这样为我的十进制列添加千位分隔符:

var decimalColumn = radGridView1.Columns["DecimalColumn"] as GridViewDecimalColumn;
decimalColumn.ThousandsSeparator = true;
decimalColumn.FormatString = "{0:n0}";

它工作正常。但是当我处于编辑模式并输入例如 1000000 时,编辑时将不是千位分隔符。所以用户可能会感到困惑。

如何在编辑时将 thousands separator 应用于小数列?有什么内置功能吗?

解决方法

如果您想显示千位分隔符,确实,将列的ThousandsSeparator 属性设置为true 是合适的。预计这也会影响编辑器。

但是,RadGridView 允许您在 CellEditorInitialized 事件中访问编辑器。因此,您可以为编辑器显式启用它:

        public RadForm1()
    {
        InitializeComponent();

        GridViewDecimalColumn decimalColumn = radGridView1.Columns["UnitPrice"] as GridViewDecimalColumn;
        decimalColumn.ThousandsSeparator = true;
        decimalColumn.FormatString = "{0:n0}"; 

        this.radGridView1.CellEditorInitialized += RadGridView1_CellEditorInitialized;
    }

    private void RadGridView1_CellEditorInitialized(object sender,GridViewCellEventArgs e)
    {
        GridSpinEditor spinEditor = e.ActiveEditor as GridSpinEditor;
        if (spinEditor!=null)
        {
            spinEditor.ThousandsSeparator = true;
        }
    }

enter image description here

我希望这些信息有帮助。