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 を動的追加

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です