Kак объединить ListBox и ComboBox?

Чтобы объединить ListBox и ComboBox в C#, можно использовать ElementHost из пространства имен System.Windows.Forms.Integration. ElementHost позволяет встраивать элементы управления Windows Forms в элементы управления WPF.

Вот пример кода, который объединяет ListBox и ComboBox:

1. Создайте новый проект Windows Forms Application в Visual Studio.
2. Добавьте ссылку на сборку PresentationCore, PresentationFramework и WindowsFormsIntegration.
3. Откройте файл Form1.cs и добавьте следующие пространства имен:

using System.Windows;
using System.Windows.Controls;
using System.Windows.Forms.Integration;

4. Внутри класса Form1 добавьте следующие приватные поля:

private System.Windows.Controls.ListBox listBox;
private System.Windows.Controls.ComboBox comboBox;

5. Далее, создайте метод InitializeWpfControls, который будет инициализировать ListBox и ComboBox:

private void InitializeWpfControls()
{
    listBox = new System.Windows.Controls.ListBox();
    listBox.ItemsSource = new string[] { "Item 1", "Item 2", "Item 3" };

    comboBox = new System.Windows.Controls.ComboBox();
    comboBox.ItemsSource = new string[] { "Option 1", "Option 2", "Option 3" };

    // Добавить ListBox и ComboBox в элемент управления ElementHost
    ElementHost elementHost = new ElementHost();
    elementHost.Dock = DockStyle.Fill;
    elementHost.Child = new System.Windows.Controls.StackPanel() { Children = { listBox, comboBox } };

    // Добавить элемент управления ElementHost в форму Windows Forms
    Controls.Add(elementHost);
}

6. Теперь воспользуйтесь событием Form.Load, чтобы инициализировать элементы управления:

private void Form1_Load(object sender, EventArgs e)
{
    InitializeWpfControls();
}

7. Запустите приложение и убедитесь, что ListBox и ComboBox отображаются внутри формы Windows Forms.

Таким образом, приведенный выше код показывает, как объединить ListBox и ComboBox, используя ElementHost и интеграцию между Windows Forms и WPF. Обратите внимание, что вам может потребоваться дополнительная настройка для управления внешним видом элементов управления и их поведением. Вы также можете добавить обработчики событий для ListBox и ComboBox для обработки действий пользователя.