是否可以将数组绑定到 DataGridView 控件? [英] Is it possible to bind an array to DataGridView control?

查看:30
本文介绍了是否可以将数组绑定到 DataGridView 控件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个数组 arrStudents,其中包含我学生的年龄、GPA 和姓名,如下所示:

I have an array, arrStudents, that contains my students' age, GPA, and name like so:

arrStudents[0].Age = "8"
arrStudents[0].GPA = "3.5"
arrStudents[0].Name = "Bob"

我尝试像这样将 arrStudents 绑定到 DataGridView:

I tried to bind arrStudents to a DataGridView like so:

dataGridView1.DataSource = arrStudents;

但是数组的内容没有显示在控件中.我错过了什么吗?

But the contents of the array do NOT show up in the control. Am I missing something?

推荐答案

和 Adolfo 一样,我已经验证了这 有效.显示的代码没有任何问题,所以问题一定出在您没有显示的代码中.

As with Adolfo, I've verified that this works. There is nothing wrong in the code shown, so the problem must be in the code you aren't showing.

我的猜测:Age 等不是公共属性;它们要么是internal,要么是fields,即public int Age; 而不是public int Age {get;set;}.

My guess: Age etc are not public properties; either they are internal or they are fields, i.e. public int Age; instead of public int Age {get;set;}.

以下是适用于类型良好的数组和匿名类型数组的代码:

Here's your code working for both a well-typed array and an array of anonymous types:

using System;
using System.Linq;
using System.Windows.Forms;
public class Student
{
    public int Age { get; set; }
    public double GPA { get; set; }
    public string Name { get; set; }
}

internal class Program
{
    [STAThread]
    public static void Main() {
        Application.EnableVisualStyles();
        using(var grid = new DataGridView { Dock = DockStyle.Fill})
        using(var form = new Form { Controls = {grid}}) {
            // typed
            var arrStudents = new[] {
                new Student{ Age = 1, GPA = 2, Name = "abc"},
                new Student{ Age = 3, GPA = 4, Name = "def"},
                new Student{ Age = 5, GPA = 6, Name = "ghi"},
            };
            form.Text = "Typed Array";
            grid.DataSource = arrStudents;
            form.ShowDialog();

            // anon-type
            var anonTypeArr = arrStudents.Select(
                x => new {x.Age, x.GPA, x.Name}).ToArray();
            grid.DataSource = anonTypeArr;
            form.Text = "Anonymous Type Array";
            form.ShowDialog();
        }
    }
}

这篇关于是否可以将数组绑定到 DataGridView 控件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆