Как вывести результат команды на Listbox?

Чтобы вывести результат команды на ListBox в C#, вам понадобится следующий код:

1. Включите элемент управления ListBox в форму.
2. Объявите и инициализируйте экземпляр класса, который представляет ваше источник данных или коллекцию, содержащую результат вашей команды. Допустим, что эта коллекция называется "resultList".
3. Установите свойство DataSource элемента ListBox равным вашей коллекции данных:

listBox1.DataSource = resultList;

4. Для отображения определенного свойства объектов вашей коллекции в ListBox, установите свойство DisplayMember равным имени свойства, которое вы хотите отобразить:

listBox1.DisplayMember = "PropertyName";

Если ваша коллекция содержит объекты с несколькими свойствами, и вы хотите отобразить все свойства, вы можете использовать форматирование строки с помощью свойства Format:

listBox1.DisplayMember = "Property1, Property2, Property3";
listBox1.Format += (s, e) =>
{
    var item = (YourObjectType)e.ListItem;
    e.Value = string.Format("{0} - {1} - {2}", item.Property1, item.Property2, item.Property3);
};

5. Если вы хотите связать ListBox с коллекцией данных динамически, например, чтобы обновлять ListBox автоматически при изменении коллекции, вы можете использовать привязку данных:

listBox1.DataBindings.Add(new Binding("DataSource", MyClassInstance, "CollectionProperty", false, DataSourceUpdateMode.OnPropertyChanged));

Где MyClassInstance - экземпляр вашего класса, CollectionProperty - свойство класса, содержащее коллекцию данных.

6. Дополнительно вы можете применить стилизацию к элементам ListBox, чтобы они выглядели по-разному или добавить обработчики событий, чтобы реагировать на действия пользователя (например, щелчок по элементу ListBox).

Вот пример кода, который демонстрирует все вышеуказанные шаги:

public partial class Form1 : Form
{
    private List<string> resultList;

    public Form1()
    {
        InitializeComponent();

        resultList = GetCommandResult(); // Получение результата команды

        listBox1.DataSource = resultList;
        listBox1.DisplayMember = "PropertyName";

        // Пример стилизации элементов ListBox
        listBox1.DrawMode = DrawMode.OwnerDrawFixed;
        listBox1.DrawItem += ListBox1_DrawItem;
    }

    private void ListBox1_DrawItem(object sender, DrawItemEventArgs e)
    {
        e.DrawBackground();
        var item = listBox1.Items[e.Index].ToString();
        var font = new Font(FontFamily.GenericSansSerif, 12);
        var brush = Brushes.Black;
        if (item.Contains("Important"))
        {
            brush = Brushes.Red;
        }
        e.Graphics.DrawString(item, font, brush, e.Bounds);
        e.DrawFocusRectangle();
    }

    private List<string> GetCommandResult()
    {
        // Здесь возвращаете результат вашей команды, например, из базы данных, файла или любого другого источника
        return new List<string> { "Item 1", "Item 2", "Important Item 3" };
    }
}

Данный код позволит вам вывести результат команды на ListBox, а также позволит настроить стилизацию элементов ListBox и реагировать на действия пользователя.