A continuación vamos a implementar una función muy utilizada: agregar elementos dinámicamente a una ListBox. Al pulsar el botón, insertaremos un nuevo ítem dentro de la colección Items de la ListBox, una funcionalidad presente en muchísimos programas.
Primero añadimos una ListBox y un botón en el XAML
<Border Padding="14" BorderThickness="1" BorderBrush="Gray" CornerRadius="8">
<StackPanel Spacing="12">
<TextBlock Text="5. ListBox - Lista de altura fija (selección simple/múltiple)" FontWeight="SemiBold" FontSize="14" Margin="0,0,0,8"/>
<Button Content="Añadir elemento" Click="Button_Click"/>
<ListBox Width="280" Height="140" x:Name="myListBox" SelectionMode="Multiple">
<ListBoxItem Content="Documentos"/>
<ListBoxItem Content="Imágenes"/>
<ListBoxItem Content="Vídeos"/>
<ListBoxItem Content="Audios"/>
<ListBoxItem Content="Instaladores"/>
</ListBox>
</StackPanel>
</Border>Lenguaje del código: C++ (cpp)
Hemos incluido un botón; al hacer clic se creará un nuevo ListBoxItem. Para poder manipular la ListBox desde el código backend, debemos asignarle un nombre: x:Name=»myListBox»
Pulsa la tecla F12 para generar automáticamente la función del evento click.
void winrt::App6::implementation::MainWindow::Button_Click(
winrt::Windows::Foundation::IInspectable const& sender,
winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e)
{
// Obtener la colección Items de la ListBox
auto itemCollection = myListBox().Items();
itemCollection.Append(box_value(L"Nuevo elemento"));
}Lenguaje del código: C++ (cpp)
Dentro de la función del evento, primero recuperamos el control con x:Name=»myListBox», extraemos su colección Items y usamos Append para agregar contenido nuevo.
Controles WinUI 3 C++ – Agregar ítems dinámicamente a ListBox