我有一个应用程序,我在其中使用DevExpress GridControl。正确填充列除外属性返回string.Empty值时。在这种情况下,将显示X.Y.Z形式的对象名称。
如果我返回一个“”字符串,则会显示一个空字符串值,如我所愿。如果我在类上遍历ToString方法并返回string.Empty值,则字段中会显示一个空字符串。
为什么不返回string.Empty在从属性返回时显示期望值?并且,有没有办法指定我想将string.Empty作为列的默认值而不是过度使用ToString?
答案 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);