WinUI 3 C++ 控制項篇-ListBox 動態新增 Items

接下來我們實作一個很實用的功能:動態新增項目至 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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *