이제 자주 사용하는 기능을 구현해 보겠습니다. ListBox에 항목을 동적으로 추가하는 기능인데, 버튼을 클릭하면 ListBox의 Items 컬렉션에 새 항목을 삽입하는 방식으로 대부분의 소프트웨어에서 활용됩니다.
먼저 XAML 안에 ListBox와 버튼을 추가합니다
<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)
버튼을 하나 추가했으며 클릭 시 새로운 ListBox 항목이 생성됩니다. 백엔드 코드에서 ListBox에 접근하려면 x:Name=”myListBox”로 이름을 지정해야 합니다.
F12 키를 누르면 클릭 이벤트 핸들러 함수가 자동 생성됩니다.
void winrt::App6::implementation::MainWindow::Button_Click(
winrt::Windows::Foundation::IInspectable const& sender,
winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e)
{
// ListBox의 Items 컬렉션 가져오기
auto itemCollection = myListBox().Items();
itemCollection.Append(box_value(L"새 항목"));
}Code language: C++ (cpp)
이벤트 함수 안에서 x:Name=”myListBox” 컨트롤 인스턴스를 얻은 뒤 Items 컬렉션을 가져오고 Append 메서드로 새 내용을 추가합니다.
WinUI 3 C++ 컨트롤 편 – ListBox Items 동적 추가하기
Previous: WinUI 3 C++ 컨트롤 편 – 선택 및 토글 컨트롤