如何指定要在DataSource GridView中显示的列表中的列?C#

本文关键字:列表 何指定 显示 DataSource GridView | 更新日期: 2023-09-27 18:00:42

我有一个DataGridView和一个List<>作为一个DataForce,但我只想显示选定的列。

我有这样的东西。。。(仅举例)

 class Order{
    public int IdOrder;
    public string Product;
    public double Price;
    public int quantity;
 }
 List<Order> orders = new List<Order>();
 myDataGrid.DataSource = orders;

注意:另外我使用了devexpress组件和xPO框架(相同)谢谢

如何指定要在DataSource GridView中显示的列表中的列?C#

您可以对要隐藏的每个列执行类似的操作:

myDataGrid.Columns[0].Visible = false;

设置DataSource并填充列后,可以迭代生成的列并隐藏/删除其中一些列:

foreach (var column in gridView1.Columns.OfType<DevExpress.XtraGrid.Columns.GridColumn>())
{
    if (column.FieldName == "MemberToBeHidden")
    {
        // Just hide it by default, user can still choose to show it later
        column.Visible = false;
        // Or completely remove from the grid
        gridView1.Columns.Remove(column);
    }
}

或者,如果你根本不想让字段出现,你可以用BrowsableAttribute:标记它

class Order
{
    public int IdOrder;
    public string Product;
    public double Price;
    public int quantity;
    [Browsable(false)]
    public string MemberToBeHidden;
}

您应该禁用datagridview的AutoGeneratedColumns属性,使用与不想显示的属性相同的列名手动创建列,然后将数据源绑定到它。