Элементы управления WinUI 3 C++ – Динамическое добавление элементов в ListBox

Теперь реализуем часто используемую функцию: динамическое добавление элементов в ListBox. При нажатии кнопки мы вставляем новый элемент в коллекцию Items списка ListBox, эта возможность присутствует во многих программах.

Сначала добавьте ListBox и кнопку в разметку XAML

<Border Padding="14" BorderThickness="1" BorderBrush="Gray" CornerRadius="8">
    <StackPanel Spacing="12">
        <TextBlock Text="5. ListBox - Список фиксированной высоты (одинарный/множественный выбор)" FontWeight="SemiBold" FontSize="14" Margin="0,0,0,8"/>
        <Button Content="Добавить элемент" Click="Button_Click"/>
        <ListBox Width="280" Height="140" x:Name="myListBox" SelectionMode="Multiple">
            <ListBoxItem Content="Документы"/>
            <ListBoxItem Content="Изображения"/>
            <ListBoxItem Content="Видео"/>
            <ListBoxItem Content="Аудио"/>
            <ListBoxItem Content="Установщики"/>
        </ListBox>
    </StackPanel>
</Border>Code language: C++ (cpp)

Мы добавили кнопку; при клике создаётся новый элемент ListBoxItem. Чтобы работать с ListBox из кода на C++, ему нужно присвоить имя x:Name=»myListBox»

Нажмите F12 для автоматической генерации обработчика события нажатия.

void winrt::App6::implementation::MainWindow::Button_Click(
winrt::Windows::Foundation::IInspectable const& sender,
 winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e)
{
    // Получить коллекцию Items элемента ListBox
    auto itemCollection = myListBox().Items();

    itemCollection.Append(box_value(L"Новый элемент"));
}Code language: C++ (cpp)

В функции обработчика сначала получаем экземпляр элемента с именем x:Name=»myListBox», извлекаем коллекцию Items и вызываем Append для добавления нового содержимого.

Элементы управления WinUI 3 C++ – Динамическое добавление элементов в ListBox

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *