0

我有一个使用 DevExpress GridControl 的应用程序。除非属性返回 string.Empty 值,否则会正确填充列。在这种情况下,显示 XYZ 形式的对象名称。

如果我返回一个 " " 字符串,则会按照我的意愿显示一个空字符串值。如果我在类上覆盖 ToString 方法并返回一个 string.Empty 值,则该字段中将显示一个空字符串。

当我从属性返回时,为什么返回 string.Empty 不显示预期值?而且,有没有办法指定我希望 string.Empty 作为列的默认值,而不是覆盖 ToString?

4

2 回答 2

0

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

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

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

于 2014-01-09T12:54:08.723 回答
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);
于 2014-12-19T12:45:14.213 回答