Guide des contrôles WinUI 3 C++ – Ajouter dynamiquement des éléments à une ListBox

Nous allons maintenant réaliser une fonction très courante : ajouter dynamiquement des éléments dans une ListBox. Cliquez sur le bouton pour insérer un nouvel élément dans la collection Items de la ListBox. Cette fonctionnalité est utilisée dans la plupart des logiciels.

Tout d’abord, ajoutez une ListBox et un bouton dans le XAML

<Border Padding="14" BorderThickness="1" BorderBrush="Gray" CornerRadius="8">
    <StackPanel Spacing="12">
        <TextBlock Text="5. ListBox - Liste à hauteur fixe (sélection simple / multiple)" FontWeight="SemiBold" FontSize="14" Margin="0,0,0,8"/>
        <Button Content="Ajouter un élément" Click="Button_Click"/>
        <ListBox Width="280" Height="140" x:Name="myListBox" SelectionMode="Multiple">
            <ListBoxItem Content="Documents"/>
            <ListBoxItem Content="Images"/>
            <ListBoxItem Content="Vidéos"/>
            <ListBoxItem Content="Audios"/>
            <ListBoxItem Content="Installateurs"/>
        </ListBox>
    </StackPanel>
</Border>Langage du code : C++ (cpp)

Nous avons ajouté un bouton ; un nouvel élément ListBox est créé lors du clic. Pour manipuler la ListBox depuis le code arrière, il faut lui attribuer un nom : x:Name= »myListBox ».

Appuyez sur F12 pour générer automatiquement la fonction de gestion de l’événement.

void winrt::App6::implementation::MainWindow::Button_Click(
winrt::Windows::Foundation::IInspectable const& sender,
 winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e)
{
    // Récupérer la collection Items de la ListBox
    auto itemCollection = myListBox().Items();

    itemCollection.Append(box_value(L"Nouvel élément"));
}Langage du code : C++ (cpp)

Dans la fonction événementielle, récupérez d’abord l’instance du contrôle x:Name= »myListBox », obtenez sa collection Items, puis utilisez Append pour ajouter du nouveau contenu.

Guide des contrôles WinUI 3 C++ – Ajouter dynamiquement des éléments à une ListBox

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *