Close
Angular React Web Components Blazor Blazor
Open Source

Blazor List (リスト) の概要

Ignite UI for Blazor List 要素は、項目のグループを番号の付いた形式または黒丸の付いた形式のいずれかで提示する時に非常に役に立ちます。さまざまなレイアウト要素の配列を含むテキスト アイテムの単純なリスト、またはより複雑なリストを作成できます。IgbList コンポーネントは項目の行を表示し、1 つ以上のヘッダーもサポートします。各リスト項目は完全にテンプレート化可能であり、有効な HTML またはその他のコンポーネントをサポートします。

Blazor List の例

次の例は、名前と電話番号のプロパティを持つ連絡先が入力されたリストを表しています。以下に示す IgbList コンポーネントは、IgbAvatar 要素と IgbButton 要素を使用して、ユーザー エクスペリエンスを強化し、テキストと呼び出しアクションのアバター画像とボタンを設定する機能を公開します。

使用方法

List Web コンポーネントは、項目の垂直リストを簡単に表示できます。

IgbList を使用する前に、次のように登録する必要があります。

// in Program.cs file

builder.Services.AddIgniteUIBlazor(typeof(IgbListModule));

また、追加の CSS ファイルをリンクして、スタイルを IgbList コンポーネントに適用する必要があります。以下は、Blazor Web Assembly プロジェクトの wwwroot/index.html ファイルまたは Blazor Server プロジェクトの Pages/_Host.cshtml ファイルに配置する必要があります:

<link href="_content/IgniteUI.Blazor/themes/light/bootstrap.css" rel="stylesheet" />

Ignite UI for Blazor の完全な概要については、作業の開始トピックを参照してください。

リスト項目の追加

これで、次のコードを追加して、項目の簡単なリストを取得できます。

<IgbList>
    <IgbListHeader>Header</IgbListHeader>
    <IgbListItem>
        <h2 slot="title">Item 1</h2>
    </IgbListItem>
    <IgbListItem>
        <h2 slot="title">Item 2</h2>
    </IgbListItem>
    <IgbListItem>
        <h2 slot="title">Item 3</h2>
    </IgbListItem>
</IgbList>

以下は結果です:

リスト項目を次のように強化できます。名前と名前の下に表示される電話番号を使用して連絡先のリストを作成するとします。これを実現するために、次の例に示すように、リスト項目に付属するいくつかのスロットを使用できます。

<IgbList>
    <IgbListHeader>
        <h1>Contacts</h1>
    </IgbListHeader>
    <IgbListItem>
        <h2 slot="title">Terrance Orta</h2>
        <span slot="subtitle">770-504-2217</span>
    </IgbListItem>
    <IgbListItem>
        <h2 slot="title">Richard Mahoney</h2>
        <span slot="subtitle">423-676-2869</span>
    </IgbListItem>
    <IgbListItem>
        <h2 slot="title">Donna Price</h2>
        <span slot="subtitle">859-496-2817</span>
    </IgbListItem>
</IgbList>

上記のコードを実装すると、リスト コンポーネントは次のようになります:

アバターおよびボタンの追加

他のコンポーネントのいくつかを IgbList コンポーネントと組み合わせて使用して、エクスペリエンスを充実させ、いくつかの機能を追加することができます。名前や電話番号の値の左に画像のアバターを表示できます。さらに、右側にいくつかのボタンを追加して、ユーザーが連絡先にテキスト メッセージを送信したり電話をかけたりできるようにすることができるので、連絡先リスト コンポーネントを更新して、アバターとボタンを表示します。リスト項目のスロットのいくつかを使用することでそれを行うことができます。

<IgbList>
    <IgbListHeader>
        <h1>Contacts</h1>
    </IgbListHeader>
    <IgbListItem>
        <IgbAvatar slot="start" src="https://static.infragistics.com/xplatform/images/avatars/8.jpg" Shape="@AvatarShape.Circle"/>
        <h2 slot="title">Terrance Orta</h2>
        <span slot="subtitle">770-504-2217</span>
        <IgbButton slot="end" Variant="@ButtonVariant.Outlined">Text</IgbButton>
        <IgbButton slot="end" Variant="@ButtonVariant.Outlined">Call</IgbButton>
    </IgbListItem>
    <IgbListItem>
        <IgbAvatar slot="start" src="https://static.infragistics.com/xplatform/images/avatars/17.jpg" Shape="@AvatarShape.Circle"/>
        <h2 slot="title">Richard Mahoney</h2>
        <span slot="subtitle">423-676-2869</span>
        <IgbButton slot="end" Variant="@ButtonVariant.Outlined">Text</IgbButton>
        <IgbButton slot="end" Variant="@ButtonVariant.Outlined">Call</IgbButton>
    </IgbListItem>
    <IgbListItem>
        <IgbAvatar slot="start" src="https://static.infragistics.com/xplatform/images/avatars/9.jpg" Shape="@AvatarShape.Circle"/>
        <h2 slot="title">Donna Price</h2>
        <span slot="subtitle">859-496-2817</span>
        <IgbButton slot="end" Variant="@ButtonVariant.Outlined">Text</IgbButton>
        <IgbButton slot="end" Variant="@ButtonVariant.Outlined">Call</IgbButton>
    </IgbListItem>
</IgbList>

start スロットは、リスト項目の他のすべてのコンテンツの前に、ある種のメディアを追加するために使用することを目的としています。ターゲット要素 (この場合は IgbAvatar コンポーネント) にも、デフォルトの位置と間隔が提供されます。

end スロットは、switch、button、checkbox などで表される、ある種のアクションまたはメタデータを持つリスト項目に使用することを目的としています。IgbButton コンポーネントを使用します。

また、ユーザーが --ig-size CSS 変数を使用してリストのサイズを変更できるようにしましょう。すべてのサイズ値を表示するために、いくつかのラジオ ボタンを追加します。このようにして、選択されるたびに、リストのサイズを変更します。

<IgbRadioGroup Alignment="@ContentOrientation.Horizontal">
    <IgbRadio Value="Small" label-position="after" Change="OnRadioOptionClick">Small</IgbRadio>
    <IgbRadio Value="Medium" label-position="after" Change="OnRadioOptionClick">Medium</IgbRadio>
    <IgbRadio Value="Large" label-position="after" Checked="true" Change="OnRadioOptionClick">Large</IgbRadio>
</IgbRadioGroup>

<IgbList style="margin-top: 10px;" Size="@ListSize" />

@code {
    public SizableComponentSize ListSize { get; set; }

    public void OnRadioOptionClick(IgbComponentBoolValueChangedEventArgs e)
    {
        IgbRadio radio = e.Parent as IgbRadio;
        switch (radio.Value)
        {
            case "Small":
                {
                    this.ListSize = SizableComponentSize.Small;
                    break;
                }
            case "Medium":
                {
                    this.ListSize = SizableComponentSize.Medium;
                    break;
                }
            case "Large":
                {
                    this.ListSize = SizableComponentSize.Large;
                    break;
                }
        }
    }
}

上記のコードを実装した結果は、次のようになります:

スロット用の推奨要素

titlesubtitle スロットにコンテンツを割り当てる場合、見出し要素 (<h1><h6>) ではなく <span> 要素を使用することをお勧めします。見出し要素にはフォント サイズ、行の高さ、マージンなどの組み込みスタイルが含まれており、コンポーネントが意図したタイポグラフィやレイアウトに干渉する可能性があります。<span> を使用することで、コンポーネントのスタイルをそのまま継承できるニュートラルなコンテナーになります。

最良の結果を得るに、メディア コンテンツを対象とした start スロットには <igc-avatar> コンポーネントを使用することをお勧めします。アクションを対象とした end スロットには、表示するコンテンツの種類に応じて <igc-button><igc-switch><igc-checkbox> などのコンポーネントを使用することをお勧めします。ただし、これら 2 つのスロットには、表示するコンテンツに適していれば、start スロットに <img>end スロットに <button> などのプレーン HTML 要素を使用することもできます。

<IgbList>
  <IgbListHeader>Title</IgbListHeader>
  <IgbListItem>
    <IgbAvatar slot="start" src="https://randomuser.me/api/portraits/men/27.jpg"/>
    <span slot="title">Terrance Orta</span>
    <span slot="subtitle">770-504-2217</span>
    <IgbButton slot="end" Variant="@ButtonVariant.Outlined">Call</IgbButton>
  </IgbListItem>
</IgbList>

スタイル設定

IgbList はいくつかの CSS パーツを公開し、スタイルを完全に制御できるようにします。

名前説明
start開始のコンテナー。
end終了のコンテナー。
contentヘッダーとカスタム コンテンツのコンテナー。
headerタイトルとサブタイトルのコンテナー。
titleタイトルのコンテナー。
subtitleサブタイトルのコンテナー。
igc-list-header {
  font-size: 20px;
  font-weight: 700;
  color: var(--ig-primary-700);
}

igc-list-item::part(title) {
  font-size: 18px;
  color: var(--ig-primary-600);
}

igc-list-item::part(subtitle) {
  color: var(--ig-primary-300);
}

この記事では、IgbList コンポーネントで多くのことを取り上げました。最初に、テキスト項目を含む簡単なリストを作成しました。次に、連絡先項目のリストを作成し、IgbAvatarIgbButton などの追加の Ignite UI for Blazor コンポーネントを使用してそれらに機能を追加しました。最後に、公開された CSS パーツを使用してコンポーネントの外観を変更しました。

API リファレンス

IgbAvatar
IgbButton
IgbRadioGroup
IgbRadio
IgbListHeader
IgbListItem
IgbList

その他のリソース