Поэтому у меня возникли проблемы с заполнением datagrid
классом, который я создал. Класс выглядит так:
public class Shell
{
public string shellURL { get; set; }
public string shellStatus { get; set; }
public Shell(string shellURL, string shellStatus)
{
this.shellURL = shellURL;
this.shellStatus = shellStatus;
}
}
Я попытался использовать следующий метод, но он не заполняется правильно, он просто добавляет Shell.shelllist
или что-то в этом роде, а не настоящие строки. Я хочу, чтобы datagrid
заполнялся URL-адресом оболочки и статусом оболочки.
var source = new BindingSource();
rawShellsDataGrid.AutoGenerateColumns = true;
source.DataSource = shellList.Select(x => new { Shell = x }).ToList();
rawShellsDataGrid.DataSource = source;
Как мне заполнить datagrid
фактическими переменными списка shelllist
? Я нахожу datagrid
очень сложным, в идеале я хотел бы предопределить столбцы, но у меня ничего не получилось, просто были добавлены пустые столбцы.
Я хочу, чтобы datagrid
автоматически генерировал столбцы класса Shell
и добавлял их значения.
Вы всегда можете создать DataTable, который легко связать
public class Shell
{
public string shellURL { get; set; }
public string shellStatus { get; set; }
public Shell(string shellURL, string shellStatus)
{
this.shellURL = shellURL;
this.shellStatus = shellStatus;
}
public DataTable BuildTable(List<Shell> shells)
{
DataTable dt = new DataTable();
dt.Columns.Add("URL", typeof(string));
dt.Columns.Add("Status", typeof(string));
foreach(Shell shell in shells)
{
dt.Rows.Add(new object[] { shell.shellURL, shell.shellStatus});
}
return dt;
}|
}
Похоже, именно то, что я хочу, но не могли бы вы объяснить мне это, пожалуйста? Например, как вы привязываете таблицу данных к фактической сетке данных, а также как это работает в целом. Мне нужно понять :)
Неважно, после исследований я понял это сам, спасибо, сэр!
DataGridView
aGridView
илиDataGrid
и наоборот!! Это неправильно и сбивает с толку, поскольку это разные элементы управления. Всегда называйте вещи их именами Правильно!