Заполнение datagridview определенным классом?

Поэтому у меня возникли проблемы с заполнением 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 и добавлял их значения.

Не вызвать DataGridViewa GridView или DataGrid и наоборот!! Это неправильно и сбивает с толку, поскольку это разные элементы управления. Всегда называйте вещи их именами Правильно!
TaW 26.07.2019 16:09
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
33
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы всегда можете создать 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;
        }|
    }

Похоже, именно то, что я хочу, но не могли бы вы объяснить мне это, пожалуйста? Например, как вы привязываете таблицу данных к фактической сетке данных, а также как это работает в целом. Мне нужно понять :)

James D 26.07.2019 16:11

Неважно, после исследований я понял это сам, спасибо, сэр!

James D 26.07.2019 16:27

Другие вопросы по теме