本文へスキップ
BecomeCoder

Blazorコース · 第2章 画面とデータを連動させる · レッスン7

リストの操作 ― 追加と削除で一覧を編集する

ブラウザで完結

導入

ここまでの@bind@onclick@foreachを合体させると、いよいよ「アプリらしい」画面になります。定番の**やることリスト(ToDo)**を作り、入力→追加→一覧表示、そして削除までを動かしてみましょう。

説明

入力を@bindで受け取り、ボタンの@onclickでリストにAdd、一覧は@foreachで描く。この3点セットが土台です。

<h3>やることリスト</h3>
<input @bind="newTask" placeholder="やることを入力" />
<button @onclick="Add">追加</button>

<ul>
@foreach (var task in tasks)
{
    <li>@task</li>
}
</ul>
<p>残り @tasks.Count 件</p>

@code {
    private string newTask = "";
    private List<string> tasks = new List<string> { "牛乳を買う", "本を返す" };

    private void Add()
    {
        tasks.Add(newTask);   // 入力をリストに追加
        newTask = "";          // 入力欄を空に戻す
    }
}
  • List<string>Addで要素を足すと、@foreachの一覧が自動で1行増える
  • 追加後にnewTask = ""で入力欄をクリアするのが定番
  • 件数は@tasks.Countで表示できる

やってみよう

入力欄に打って「追加」を押すと、一覧に増えていきます。何件か足して、@tasks.Countが連動して増えるのを確かめましょう。

演習

「全部消す」ボタンを足して、リストを空にできるようにしてください。

ヒント1を見る

private void ClearAll() { tasks.Clear(); }を作ります。

ヒント2を見る

<button @onclick="ClearAll">全部消す</button>を置けば、押すと一覧が空になります。

次回: コンポーネントが生成・更新される流れ——ライフサイクルです。

実際に動かしてみよう

下のエディタに .razor を書くと、右側のプレビューにその場で Blazor 風のUIが描画されます。`@名前` の埋め込み、`@bind` の双方向バインディング、`@onclick` のカウンターやトグル、`@if`/`@foreach` の分岐・繰り返しはそのまま動きます。本文の .razor を打ち込んだり、`@code` のフィールドやハンドラを書き換えたりして、状態と画面の連動を確かめながら進めましょう(本物のBlazorではなく描画と簡単な対話を再現した学習用プレビューです。DI・HttpClient・JS相互運用や @code の本格的なC#ロジックは実行されないので、それらは dotnet で実際のプロジェクトを作って試します)。

Blazor (.razor) プレビュー

書いた .razor をその場で Blazor 風の画面に描画する学習用プレビューを読み込みます(本物のBlazorではなく、Razor構文の描画・@bindの双方向バインディング・@onclick/@if/@foreach の簡単な対話を再現したものです。@code の本格的なC#ロジックやDI・HTTP・JS相互運用は実行されません)。
スクロールして表示された時点でも自動で読み込まれます。