WPF正在加载仅包含所需信息的数据网格

本文关键字:信息 数据 数据网 网格 包含所 加载 WPF | 更新日期: 2023-09-27 18:24:41

我有一个DataGrid,它显示加载的数据。现在我的问题是,我不想将所有信息显示到DataGrid中。e.i用户ID、密码和Gander。我只知道使用Gridview,在那里我可以手动添加我想要的列,而不是通过编码。请帮帮我。

  //method that save to d grid
    public static List<ObjectUser> GetListAllUsers()
    {
        List<ObjectUser> oUserList = new List<ObjectUser>();
        try
        {
            SqlConnection oConnection = new SqlConnection(_ConnectionString);
            SqlCommand oCOmmand = new SqlCommand();
            oCOmmand.Connection = oConnection;
            DataSet oDs = new DataSet();
            oCOmmand.CommandText = @"select u.* , c.Company 
                                    from UserEnrollment u
                                    inner join [dbo].[Company] c on u.CompanyID = c.CompanyID";
            SqlDataAdapter Adapter = new SqlDataAdapter(oCOmmand.CommandText,   oCOmmand.Connection);
            Adapter.Fill(oDs);
            if (oDs.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow dr in oDs.Tables[0].Rows)
                {
                    ObjectUser oGet = new ObjectUser();
                   oGet.UserID = Convert.ToInt32(dr["UserID"].ToString());
                   oGet.UserName = dr["UserName"].ToString();
                   oGet.Password = dr["Password"].ToString();
                    oGet.FullNames = dr["FullNames"].ToString();
                    oGet.Surname = dr["Surname"].ToString();
                    oGet.Email = dr["EmailAddress"].ToString();
                   oGet.GenderID = Convert.ToInt32(dr["GenderID"].ToString());
                    oGet.CompanyName = dr["Company"].ToString();
                    oUserList.Add(oGet);
                }
            }

WPF正在加载仅包含所需信息的数据网格

  1. 创建一个包含数据网格隐藏列的属性,如下所示。

    string[]arr=新string[2]{"第1列","第2列"};

  2. 现在在自动生成列事件中使用上面的arr,如代码所示

您可以使用数据网格的自动生成列事件来实现上述功能。

你可以根据你的要求使用以下任何一个代码

案例1:如果您有不想显示的列列表,那么您可以在数据网格的自动生成列事件中使用以下代码

    if(e != null)
    {
        if(arr.Contains(e.Column.Header))
        {
            e.Cancel = true;
           //Here if you want to just hide the column and wants to generate the column
           // e.Column.Visibility= Visibility.Collapsed;
        }
    }

案例2:如果您有想要显示的列列表,那么您可以在数据网格的自动生成列事件中使用以下代码

    string[] VisibleColumns = //Here populate string array with list of columns you want to show
    if (e != null)
    {
        if (!VisibleColumns.Contains(e.Column.Header))
        {
            e.Cancel = true;
        }
    }

只需在设置datagridview的数据源后隐藏不想显示的列:

myDataGridView.Columns["UserID"].Visible = false;
myDataGridView.Columns["Password"].Visible = false;
myDataGridView.Columns["GenderID"].Visible = false;