【问题标题】:XamDataGrid dynamic fields format poorlyXamDataGrid 动态字段格式不佳
【发布时间】:2012-05-07 20:55:05
【问题描述】:

所以我有一个简单的窗口,它只包含一个 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 以相关方式与所有动态列共享任何代码,但能够根据数据类型正确格式化它们吗?

【问题讨论】:

    标签: c# wpf infragistics xamdatagrid


    【解决方案1】:

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

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

    【讨论】:

    • 究竟如何使用 ValueEditor.RegisterDefaultEditorForType 方法?你有一个简单例子的链接吗?
    • 我只是有点困惑这个例子中的值编辑器类是什么,我不能从 XamDataGrid 调用这个方法,它似乎是编辑器本身的静态方法,这没什么意义至于这实际上如何解决问题。
    • XamDataGrid 使用从 ValueEditor 派生的编辑器作为字段的编辑器。 RegisterDefaultEditorForType 方法允许您为特定类型指定默认使用的编辑器。例如,默认情况下 XamCurrencyEditor 用于十进制,您可能更喜欢使用 XamNumericEditor,以便您可以使用此静态方法进行更改。请注意,这应该在设置网格的 DataSource 之前调用,以便在初始化 FieldLayout 之前发生。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-25
    • 2021-04-03
    • 1970-01-01
    • 2019-01-28
    相关资源
    最近更新 更多