C#: L'Ajout De Colonnes À Lié DatagridView Avec Le Code

//Pour obtenir des données à partir de cette Admin catégorie:

public static IQueryable<Student> GetStudents()
{
    DojoDBDataContext conn = new DojoDBDataContext();

    var query =
        from s in conn.Students
        join b in conn.Belts on s.BeltID equals b.ID
        orderby s.LastName ascending
        select s;

    return query;
}

//Et sur mon formulaire:

BindingSource bs = new BindingSource();

    private void fillStudentGrid()
    {
        bs.DataSource = Admin.GetStudents();
        dgViewStudents.DataSource = bs;
        dgViewStudents.Columns.Remove("ID");
    }

Fonctionne parfaitement bien, mais plutôt que de retirer 20+ colonnes de données que je ne veux pas, je préfère suffit d'ajouter les quelques que je fais. De Plus, arriver à le nom de l'en-tête de titres est un bonus. Mais, l'ajout de méthode ne fonctionne pas pour moi:

private void fillStudentGrid()
{
    bs.DataSource = Admin.GetStudents();

    dgViewStudents.AutoGenerateColumns = false;
    dgViewStudents.DataSource = bs;
    dgViewStudents.Columns.Add("ID", "ID Number");
}

- Je obtenir le nombre approprié de lignes, et le titre de la colonne est correctement réglé... mais les lignes sont remplis avec les données vides.

En fait, ce n'est pas le droit de travailler, même avec la première fillStudentGrid() du code, il n'est pas de retourner les propriétés de la conn.Les ceintures de sécurité. Doh! Je peux le faire fonctionner avec un lambda de mettre la requête linq dans la forme, mais je vais essayer de garder les données de la logique distincte.

OriginalL'auteur mdvaldosta | 2010-04-15