我有一个DataGridView,我试图从DataTable填充 . 列很好,但行中的数据很杂乱 . 第一个值是正确的,但其余的是错误的,我不知道为什么 .
public partial class Winnings : Form
{
public DataTable table = new DataTable();
我有来自另一种形式的列表,因此是contrsuctor中的参数 . 这些列表包含每只狗的1个值(姓名,年龄等) .
public Winnings(List<string> names, List<string> ages, List<string> firsts, List<string> seconds, List<string> thirds)
{
InitializeComponent();
table.Columns.Add("Name");
table.Columns.Add("Age");
table.Columns.Add("First");
table.Columns.Add("Second");
table.Columns.Add("Third");
Dog[] dogs = new Dog[names.Count];
我从5个列表中创建了每只狗
for (int i = 0; i < names.Count; i++)
{
Dog dog = new Dog(names[i], ages[i], firsts[i], seconds[i], thirds[i]);
然后将每只狗添加到包含Dogs的数组中 .
dogs[i] = dog;
}
然后试着用狗填充行 . 名称显示为corecctly但所有其他值都是错误的 .
foreach (Dog dog in dogs)
{
table.Rows.Add(dog.Name, dog.Age, dog.First, dog.Second, dog.Third);
}
dgvWinnings.DataSource = null;
dgvWinnings.DataSource = table;
dgvWinnings.AutoGenerateColumns = false;
dgvWinnings.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
}
这是我的狗课
public class Dog
{
private string name;
private string age;
private string first;
private string second;
private string third;
public string Name { get => name; set => name = value; }
public string Age { get => age; set => age = value; }
public string First { get => first; set => first = value; }
public string Second { get => second; set => second = value; }
public string Third { get => third; set => third = value; }
public Dog(string name, string age, string first, string second, string third)
{
this.name = name;
this.age = age;
this.first = first;
this.second = second;
this.third = third;
}
}
我在循环线上设置了断点并跟踪了狗的每个值,它们是正确的,但DataGridView只是显示错误的数据 .
我试图像这样手动填充行:
table.Rows.Add("Elzumin", "7", "0", "7", "2");
但它仍然显示在图片中 .
我有每个数组的文本文件 .