XamDataGrid 动态字段格式不佳

本文关键字:格式 字段 动态 XamDataGrid | 更新日期: 2023-09-27 18:33:23

所以我有一个简单的窗口,它只包含一个 XamDataGrid,其中包含运行时生成的动态查询的预览数据......

public partial class DataPreview : Window
{
    public DataTable Data { get; set; }
    public DataPreview(string SQL)
    {
        InitializeComponent();
        this.DataContext = this;
        Data = DatabaseManager.ExecuteQuery(SQL);
    }
}

我已将数据绑定到 XamDataGrid 的数据源...

<igDP:XamDataGrid DataSource="{Binding Data}" ScrollingMode="Immediate">
     <igDP:XamDataGrid.FieldSettings>
          <igDP:FieldSettings
             AllowEdit="False"/>
     </igDP:XamDataGrid.FieldSettings>
</igDP:XamDataGrid>

现在这一切都工作正常,问题是XamDataGrid中编辑器的数据类型有时与字段的数据类型不匹配。 例如,所有数字都以美元符号显示。 我试图添加这一行...

EditAsType="{x:Type sys:String}"

它修复了除实际货币金额之外的所有内容,现在显示为 xx.xxxx,没有美元符号。 我在网上找到的所有解决方案似乎都直接在 xaml 中编辑字段,但由于字段都是动态的,因此不是一个选项。 我可以做些什么来在 xaml 中正确设置编辑器吗? 或者我可以在代码中执行一些例程,以将数据调整为从 XamDataGrid 正确显示? 任何人都可以使用 XamDataGrid 以相关方式与所有动态列共享任何代码,但能够根据数据类型正确设置它们的格式吗?

XamDataGrid 动态字段格式不佳

可以使用

ValueEditor.RegisterDefaultEditorForType 设置用于特定类型字段的编辑器。 如果编辑器是正确的类型,并且您希望更改给定类型的掩码,则可以使用 XamMaskedEditor.RegisterDefaultMaskForType。

如果要为相同类型的不同字段设置不同的掩码或编辑器,则需要在创建 FieldLayout 后在代码中执行此操作。 为此,您可以使用 FieldLayoutInitialized 事件。