top
技術

はじめに

MAUI で大量のデータを表示する場合、どのような方法が良いのかの個人的なメモです。UI フレームワークは Radzen を使っています。

本題

  1. DB などの多数の列項目がある行を、縦一列に整然と並べたい場合
  2. 横幅のあるコンポーネントを縦一列に整然と並べたい場合
  3. カード形式などの小さなコンポーネントを画面に敷き詰めたい場合

DB などの多数の列項目がある行を、縦一列に整然と並べたい場合

DataGrid がオススメです。

DataList よりも圧倒的に多様なカスタマイズができます。

Page にするか Virtualization にするかはお好みですが、Page を DataGrid の下に表示する場合は、最終ページで行が少なくなると Page もそれに応じて縦位置が変わってしまうので、それを避ける場合は Page の位置を Top にすると良いと思います。
ちなみに Page の場合は DataGrid の Height を指定しても適用されませんでした。

横幅のあるコンポーネントを縦一列に整然と並べたい場合

DataGrid or DataList のどちらでも良いと思います。

ただヘッダーがない分、DataList の方が余分なスペースを抑えることができます。

DataList も Page にするか Virtualization はお好みですが、DataGrid 同様に、Page の位置が最終ページで変わってしまうので、回避する場合は Page 位置を Top にする必要があります。

やはり、Page の場合は DataList の Height を指定しても適用されませんでした。

カード形式などの小さなコンポーネントを画面に敷き詰めたい場合

DataList と Pager コンポーネントの両方を使います。

DataList の Page と Virtualization はどちらもオフにして、Pager を利用して、1ページ分のデータのみを注入するようにします。

Radzen の DataGrid や DataList は、おそらく内部的に Razor の Virtualize コンポーネントを使っていると思われるのですが、Virtualize は 縦一列の配置しか対応していないようです。
詳細は下記に。