Lightning Blog
Blazor記事イメージ画像

【Blazor】 入力インターフェースのバインド方法

更新日:2023/07/20
この記事では、様々な入力インターフェースに対応した値をバインドする方法について紹介したいと思います。 バインドはユーザーの入力を処理し、データを更新するために重要な機能です。 ここでは、ドロップダウンやテキストボックス、チェックボックス、ラジオボタン、スライダーなどのUIコンポーネントのバインド方法について解説します。

    目次

  • ドロップダウンのバインド例
  • テキストボックスのバインド例
  • チェックボックスのバインド例
  • ラジオボタンのバインド例
  • スライダーのバインド例
  • 動作確認とまとめ

ドロップダウンのバインド例

セクション画像

ドロップダウンでバインドされた値を表示するコンポーネントを作成します。


<select @bind="SelectedFruit">
    @foreach (var fruit in fruits)
    {
        <option value=@fruit>@fruit</option>
    }
</select>

<p>選択されたフルーツ:@SelectedFruit</p>

@code
{
    public string SelectedFruit { get; set; } = "Apple";

    private List<string> fruits = new List<string>
    {
        "Apple",
        "Banana",
        "Orange"
    };
}

optionタグのvalue属性にはフルーツの名前の文字列を設定しています。 @bindSelectedFruitを指定することで、 ユーザーがドロップダウンで項目を選択したとき、この値がバインドされているSelectedFruitプロパティにバインドされるようになります。


テキストボックスのバインド例

セクション画像

次に、テキストボックスの値をバインドする方法に解説します。 ユーザーがテキストボックスに入力した値をリアルタイムで取得することができます。


<input type="text" @bind="InputText" />

<p>入力されたテキスト:@InputText</p>

@code {
    public string InputText { get; set; }
}

@bindを使用して、InputTextプロパティにバインドします。 これにより、ユーザーが入力したテキストが自動的にInputTextプロパティに反映されます。


チェックボックスのバインド例

セクション画像

チェックボックスの値をバインドする方法について解説します。チェックボックスの状態(チェックされているかどうか)をプロパティにバインドします。


<input type="checkbox" @bind="IsChecked" />

<p>チェックボックスの状態:@(IsChecked ? "チェックされています" : "チェックされていません")</p>

@code {
    public bool IsChecked { get; set; }
}

@bindを使用して、IsCheckedプロパティにバインドします。 これにより、チェックボックスの状態がIsCheckedプロパティに反映されます。


ラジオボタンのバインド例

セクション画像

ラジオボタンの選択された値をバインドする方法を解説していきます。複数のラジオボタンから選択された値を1つのプロパティにバインドします。


<div>
    <input type="radio" id="option1" name="options" value="Option1" @onchange="e => SelectedOption = e.Value?.ToString()" checked="@((SelectedOption == "Option1"))" />
    <label for="option1">オプション1</label>
</div>
<div>
    <input type="radio" id="option2" name="options" value="Option2" @onchange="e => SelectedOption = e.Value?.ToString()" checked="@((SelectedOption == "Option2"))" />
    <label for="option2">オプション2</label>
</div>
<p>選択されたオプション:@SelectedOption</p>

@code {
    public string? SelectedOption { get; set; }
}

@bindを使用して、SelectedOptionプロパティにバインドします。 これにより、選択されたラジオボタンの値がSelectedOptionプロパティに反映されます。


スライダーのバインド例

セクション画像

最後に、スライダーの値をバインドする方法を解説します。スライダーの値をリアルタイムで取得し、プロパティにバインドします。


<input type="range" min="0" max="100" @bind="SliderValue" />

<p>スライダーの値:@SliderValue</p>

@code {
    public int SliderValue { get; set; }
}

@bindを使用して、SliderValueプロパティにバインドします。 これにより、スライダーの値がSliderValueプロパティにリアルタイムで反映されます。


動作確認とまとめ

セクション画像

作成したコードをデバッグすると、以下のようにバインドの様子を確認できます。

バインド動作確認
バインド動作確認

バインドはよく使う機能なので、是非使ってみてください。


ブログ内の記事で書かれているサンプルコードは、GitHubから確認する事ができます。 是非参考にしてみてください。

この本では、Blazorの基本から高度なテクニックまで、実際のプロジェクトに役立つ知識を網羅しています。 初心者から経験者まで、Blazorを扱うすべての開発者にとっての必読書です。 この記事の執筆者も参考にした「Blazor入門」で、あなたのBlazorスキルを飛躍的に向上させませんか?

合わせて読みたい

カード画像
appsettings.jsonの使い方

Blazor Serverでのappsettings.jsonの使い方を解説します。開発環境や運用環境に応じた設定の使い分け方法も紹介し、appsettings.jsonから設定値を読み込む手順を具体的に説明します。

更新日:2024/06/12

カード画像
コンポーネントについて

Blazorは.NET CoreベースのSPA作成フレームワークで、C#とHTMLを使用。この記事はBlazorとRazorコンポーネントの基本を紹介。Blazorアプリは[コンポーネント駆動]で、再利用可能な部品(.razor拡張子)から構成。コンポーネント名は大文字始まりが必要。また、HTMLとC#を組み合わせて、イベントハンドリングやデータバインディングが行える。

更新日:2023/09/06

An error has occurred. This application may no longer respond until reloaded. Reload 🗙