【问题标题】:Infragistics ultrawingrid cell-level formattingInfragistics ultrawingrid 单元级格式化
【发布时间】:2014-08-18 14:06:06
【问题描述】:

我有一个 Infragistics UltraWinGrid 绑定到包含金额(十进制)和货币(字符串)的数据源。我需要显示金额和货币格式:

Data source:          Grid contents: 
Amount   Currency     Amount
12.34    EUR          EUR 12.34
22.33    USD          USD 22.33

我正在考虑 3 个选项:

  1. 使用格式化字符串填充网格中的“金额”列。我不喜欢这个选项,因为它会弄乱十进制值的排序。
  2. 在 InitializeRow 事件中为每个 CELL(单元格,而不是列!)设置一个编辑器。但是,我不知道哪个编辑器适合 - 有什么想法吗?
  3. 在 InitializeLayout 方法中格式化金额列(列级别!)以某种方式依赖于货币列(货币列作为隐藏列存在于网格中) - 但我不知道这是否可能 - 有人知道吗如何? 或者还有其他建议吗?

【问题讨论】:

    标签: formatting ultrawingrid


    【解决方案1】:

    我已经使用选项 2 使用 EditorWithText 完成了它。我连续有 2 列 - 十进制 Value 列和字符串 FormatString 列。这是我为在 Value 列中设置独立格式所做的工作。

    grid.InitializeRow += (sender, e) =>
    {
        DefaultEditorOwnerSettings settings = new DefaultEditorOwnerSettings();
        settings.DataType = typeof(Decimal);
        settings.Format = (string)e.Row.Cells["FormatString"].Value;
        EditorWithText editor = new EditorWithText(new DefaultEditorOwner(settings));
        e.Row.Cells["Value"].Editor = editor;  
    }
    

    【讨论】:

      【解决方案2】:

      Squillman 的回答很好。

      不幸的是,代码为每一行创建了一个 EditorWithText 实例。

      这就是我添加这个的原因:

      Dictionary<string, EditorWithText> dic = new Dictionary<string, EditorWithText>();
      
      EditorWithText getEditor(string format)
      {
          EditorWithText ed;
          if (!dic.TryGetValue(format, out ed))
          {
              ed = new EditorWithText(
                  new DefaultEditorOwner(
                      new DefaultEditorOwnerSettings { Format = format }));
      
              dic.Add(format, ed);
          }
          return ed;
      }
      

      所以现有格式只有一个 EditorWithText 实例。

      grid.InitializeRow += (sender, e) =>
      {
          e.Row.Cells["Value"].Editor = getEditor((string)e.Row.Cells["FormatString"].Value);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多