Agora vamos implementar uma funcionalidade muito comum: adicionar itens dinamicamente em uma ListBox. Ao clicar no botão, inserimos um novo item na coleção Items da ListBox, um recurso amplamente utilizado na maioria dos softwares.
Primeiro adicione uma ListBox e um botão no XAML
<Border Padding="14" BorderThickness="1" BorderBrush="Gray" CornerRadius="8">
<StackPanel Spacing="12">
<TextBlock Text="5. ListBox - Lista de altura fixa (seleção única/múltipla)" FontWeight="SemiBold" FontSize="14" Margin="0,0,0,8"/>
<Button Content="Adicionar item" Click="Button_Click"/>
<ListBox Width="280" Height="140" x:Name="myListBox" SelectionMode="Multiple">
<ListBoxItem Content="Documentos"/>
<ListBoxItem Content="Imagens"/>
<ListBoxItem Content="Vídeos"/>
<ListBoxItem Content="Áudios"/>
<ListBoxItem Content="Instaladores"/>
</ListBox>
</StackPanel>
</Border>Code language: C++ (cpp)
Incluímos um botão; ao clicar nele, um novo ListBoxItem é criado. Para acessar a ListBox pelo código de trás, precisamos definir um nome com x:Name=”myListBox”
Pressione F12 para gerar automaticamente a função manipuladora do evento de clique.
void winrt::App6::implementation::MainWindow::Button_Click(
winrt::Windows::Foundation::IInspectable const& sender,
winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e)
{
// Obter a coleção Items da ListBox
auto itemCollection = myListBox().Items();
itemCollection.Append(box_value(L"Novo item"));
}Code language: C++ (cpp)
Dentro da função de evento, obtemos primeiro a instância do controle x:Name=”myListBox”, pegamos sua coleção Items e chamamos Append para inserir novo conteúdo.
Controles WinUI 3 C++ – Adicionar itens dinamicamente na ListBox