接下來我們實作一個很實用的功能:動態新增項目至 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)
我們新增了一個按鈕,點擊按鈕就會建立新的 ListBoxItem。為了讓後端程式能夠操作 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++ 控制項篇-選擇與開關控制項