【问题标题】:C# - DevExpress XtraGrid - Master/Detail - Display FormatC# - DevExpress XtraGrid - 主/详细信息 - 显示格式
【发布时间】:2010-08-31 09:09:35
【问题描述】:

场景

  • 我有一个 DevExpress XtraGrid。
  • 显示的数据采用主/明细格式,单击行首的“+”可展开该主行的明细。
  • 我通过将网格数据源绑定到包含自己的 Dictionary 属性(以保存详细信息)的对象字典来实现这一点。

问题

  • 我要做的是格式化详细信息特定列中的数据。
  • 但是,我无法获取该列,可能是因为它是主行的子元素(因此没有得到检查?)
  • 以下是迄今为止我尝试过但不起作用的 2 个代码示例。

尝试的代码解决方案

gridView1.Columns["Price"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
                gridView1.Columns["Price"].DisplayFormat.FormatString = "n4";


  private void gridView1_RowCellStyle(object sender, RowCellStyleEventArgs e)
        {
            GridView View = sender as GridView;
            if (e.Column.FieldName == "Price")
            {
                e.Column.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
                e.Column.DisplayFormat.FormatString = "n4";
            }
            }

非常感谢您的帮助。

【问题讨论】:

    标签: c# devexpress


    【解决方案1】:

    要格式化详细 GridView 中的值,您应该首先获取此对象的实例。执行此操作的标准方法几乎是处理 Master GridView 的 MasterRowExpanded 事件处理程序。在此事件处理程序中,您还可以设置列的 DisplayFormat:

    private void gridView1_MasterRowExpanded_1(object sender, CustomMasterRowEventArgs e) {
        GridView master = sender as GridView;
        GridView detail = master.GetDetailView(e.RowHandle, e.RelationIndex) as GridView;
        detail.Columns["SomeColumn"].DisplayFormat = ....
    }
    

    【讨论】:

    • 当使用上面的代码我得到这个错误:Property 'DisplayFormat' is 'ReadOnly'.
    • 要修复“ReadyOnly”错误,您需要添加几行代码: FormatInfo displayFormat = detail.Columns("FieldNameNotColumnName").DisplayFormat; displayFormat.FormatString = ...;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多