DevExpress GridControl显示类名而不是空字符串

时间:2013-12-31 21:05:36

标签: c# wpf devexpress-wpf

我有一个应用程序,我在其中使用DevExpress GridControl。正确填充列除外属性返回string.Empty值时。在这种情况下,将显示X.Y.Z形式的对象名称。

如果我返回一个“”字符串,则会显示一个空字符串值,如我所愿。如果我在类上遍历ToString方法并返回string.Empty值,则字段中会显示一个空字符串。

为什么不返回string.Empty在从属性返回时显示期望值?并且,有没有办法指定我想将string.Empty作为列的默认值而不是过度使用ToString?

2 个答案:

答案 0 :(得分:0)

请检查您的属性值是否为字符串(不是类的实例) 默认情况下,将为任何属性执行自动填充列。

取消列使用属性的自动生成      [显示(AutoGenerateField = false)]

(类的实例).ToString()将类的名称返回给;

答案 1 :(得分:0)

1)您可以使用事件CustomColumnDisplayText

private void gridView1_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
{
   if(e.Column.FieldName=="mycolumn")
   {
      e.DisplayText = (e.Value as MyClass).Product.Name;
   }
}

2)您可以使用column.UnboundExpression显示任何结构

GridColumn column = gridView1.Columns.AddVisible("Product.Brand", string.Empty);
column.UnboundExpression = "[Product].Brand.Name";
column.UnboundType = DevExpress.Data.UnboundColumnType.Object;
gridView1.Columns.Add(column);