【问题标题】:Change the display value of a GridColumn更改 GridColumn 的显示值
【发布时间】:2013-11-18 11:46:22
【问题描述】:

我的应用程序中有一个列充满了像这样的对象:

EmplPoco{
    public string Id { get; set; }
    public string Name { get; set; }
}

当我启动应用程序时,它会显示在我的网格每一行的列的单元格中:

MyAppli.DataModel.EmplPoco

如何更改此行为并查看对象的属性名称的值?

编辑

我的专栏类型是

DevExpress.XtraGrid.Columns.GridColumn

dev express 版本是12.1

【问题讨论】:

    标签: c# winforms devexpress


    【解决方案1】:

    尝试重写 EmplPoco 类中的 .ToString 函数,或者您也可以使用 GridView 的 CustomColumnDisplayText 事件。

    选项 1:

    public override string ToString()
    {
        return this.Name;
    }
    

    选项 2:

    private void grdview_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
    {
        try {
            if (e.Column.Name == MyColumn.Name && e.RowHandle >= 0) {
                e.DisplayText = ((EmplPoco)e.Value).Name;
            }
        } catch (Exception ex) {
            //Handle exception here
        }
    }
    

    选项 3:

    private void grdviewAllocations_CustomUnboundColumnData(System.Object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
    {
        try {
            if (e.Column.Name == MyColumn.Name && e.RowHandle >= 0) {
                e.Value = ((MyObject)e.Row).EmplPoco.Name;
            }
        } catch (Exception ex) {
            //Handle exception here
        }
    }
    

    【讨论】:

    • 请尝试我在上面的答案中添加的选项 3,创建一个新列并确保将其设置为“字符串”类型的未绑定列,然后使用 gridview 的 CustomUnboundColumnData 事件。
    【解决方案2】:

    更改 DisplayMember 属性:as

    DisplayMemberBinding="{Binding RowData.Row.Name}
    

    【讨论】:

    • 您好,感谢您的回答,但我的对象上没有任何DisplayMemberBinding(输入DevExpress.XtraGrid.Columns.GridColumn)。
    • 您应该为您的数据创建一个属性描述符和类型转换器类,并为列表对象实现 ITypedList 接口。我以为你在使用扩展工具包
    • 你们在谈论不同的“语言”WinForms 与 WPF ;)
    猜你喜欢
    • 2019-01-05
    • 2011-11-08
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    相关资源
    最近更新 更多