Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Fluent UI BlazorのDataGridの使い方
Search
tomokusaba
October 27, 2023
Programming
0
1.5k
Fluent UI BlazorのDataGridの使い方
.NETラボ勉強会2023年10月
Fluent UI BlazorのDataGridの使い方
https://dotnetlab.connpass.com/event/296773/
tomokusaba
October 27, 2023
Tweet
Share
More Decks by tomokusaba
See All by tomokusaba
Part1 GitHubってなんだろう?その1
tomokusaba
1
260
Part1 GitHubってなんだろう?その2
tomokusaba
0
240
Part2 GitHub Copilotってなんだろう
tomokusaba
0
280
Global Azure2025(GitHub Copilot ハンズオン)
tomokusaba
0
250
ASP.NETアプリケーションのモダナイゼーションについて
tomokusaba
0
240
Fluent UI Blazor 5 (alpha)の紹介
tomokusaba
0
210
Generative AI for Beginners .NETの紹介
tomokusaba
1
290
Visual StudioのGitHub Copilotでいろいろやってみる
tomokusaba
1
390
.NET Frameworkでも汎用ホストが使いたい!
tomokusaba
0
350
Other Decks in Programming
See All in Programming
2ヶ月で生産性2倍、お買い物アプリ「カウシェ」4チーム同時改善の取り組み
ike002jp
1
110
個人開発の学生アプリが企業譲渡されるまで
akidon0000
2
1.2k
파급효과: From AI to Android Development
l2hyunwoo
0
160
GitHub Copilot for Azureを使い倒したい
ymd65536
1
310
The Implementations of Advanced LR Parser Algorithm
junk0612
2
1.3k
プロダクトエンジニアのしごと 〜 受託 × 高難度を乗り越えるOptium開発 〜
algoartis
0
170
KawaiiLT 登壇資料 キャリアとモチベーション
hiiragi
0
160
eBPF超入門「o11yに使える」とは (20250424_eBPF_o11y)
thousanda
1
110
オープンソースコントリビュート入門
_katsuma
0
120
Flutterでllama.cppをつかってローカルLLMを試してみた
sakuraidayo
0
130
Dissecting and Reconstructing Ruby Syntactic Structures
ydah
3
2k
By the way Google Cloud Next 2025に行ってみてどうだった
ymd65536
0
110
Featured
See All Featured
Making Projects Easy
brettharned
116
6.2k
A designer walks into a library…
pauljervisheath
205
24k
The Cult of Friendly URLs
andyhume
78
6.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
BBQ
matthewcrist
88
9.6k
Gamification - CAS2011
davidbonilla
81
5.3k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
[RailsConf 2023] Rails as a piece of cake
palkan
54
5.5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
19
1.2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.2k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Transcript
Fluent UI Blazorの DataGridの使い方 株式会社SAKURUG プロダクトDiv 草場 友光 .NETラボ 2023年10月
自己紹介 • 普段は主にシステムをAzureにモダナ イズする仕事をしています。 • コミュニティ活動を通じて知識をアッ プデートしています。 • 2022/08-2024 Microsoft
MVP (Developer Technologies) • tomo_kusaba
宣伝 【VISION】ひとの可能性を開花させる企業であり続ける VISIONに共感できる仲間募集中。
注意 • 個人の見解・解釈が多分に入っています。 • 見解の相違・事実誤認などありましたらご指摘ください。 • FluentUIBlazor3.2.2の内容に基づいています。 • #dotnetlabでtweetすると左側に表示されます
今日の目的 • Fluent UI Blazor 3がリリースされました。 • 先月はコンポーネントの外観について見てみましたが今月は一番 よく使うと思われるDataGridに着目して見てましょう •
前提:Blazorの基本的な知識
本題の前にASP.NET Core in .NET8 RC2 • Blazor WebAssembly template update
• これまで.NETラボで何回か紹介してきたBlazor WASM Hostedのテンプレート廃止 • 認証のドキュメントも.NET8よりBlazor WASM Hostedにつ いての記述削除 • Blazor WASMはGithub PagesやAzure static Web Appsにホストするためのソリューション • Blazor WASM HostedはASP.NET Coreサーバが必要のた めBlazor Appsに移行が推奨
Fluent UIとは • Microsoftが提唱するUIデザインシステム • W3C準拠 • Fast上に構築されている • このFluent
UIの実装をするために用意されたMicrosoft 公 式のBlazorUIコンポーネントが Microsoft.Fast.Components.FluentUI • すべての主要なブラウザで動作する
なぜ、Fluent UI • Fluent UIには哲学がある! • コンポーネントを提供するのみならずその使用方法、配置方法、設 計原則が厳格に決められている。 • 他のデザインシステムでもコンポーネントの配置方法やデザインの
指針などは決められているが、その上位の指針までは余り見たこ とがない。
Fluent UIのすすめ • Fluent UIにはデザインシステムとしての設計ガイドラインがある • アクセシビリティの配慮、レウアウトの方法、色の使用法などUIコ ンポーネントを使用してそれらを配置する方法について語られて る •
これらを遵守することでシステム間をまたがった同等の操作性が 実現
Fluent UI設計原則 • 参考にしましょう →https://fluent2.microsoft.design/design- principles
Fluent UI Blazor 4について • 現在、Preview.1中 • 名前空間が Microsoft.FluentUI.AspNetCore.Componentsに変更 •
.NET 8以降のサポート • FASTプロジェクトから一旦独立
DataGrid • 内部的にはQuickGridのコードを流用して作成されている • 表形式のデータを表示するために使用される
DataGridの基本 • IQueryable<T>のデータ型を用意しよう • Itemsプロパティに指定 • カラムはPropertyColumnで
??セルにボタンを作りたい!! • PropertyColumnに代わりTemplateColumnを使う! • ポイント1 行を識別するキー情報をDataGridのItemsに入れ ておく。必ずしも表示する必要はない。 • ポイント2 OnClickイベントでキー情報をメソッドに渡してあげ
る • 2点でどの行をのボタンが押されたかを識別する
??条件によって色をつけたい • FluentDataGridのRowStyleプロパティまたはRowClass プロパティを使用する • TGridItemで指定した型(行の型)を引数としてstringを戻り値 として持つメソッドを定義してRowStyleまたはRowClassプロ パティに設定する • それぞれ、スタイルを変更する条件によって異なるスタイルシート
文字列またはクラス名を返すようにする
??条件によってセルの内容を変えたい • TemplateColumnを使用します。 • TemplateColumnの中は自由に条件式などを記述できるので if文などを記述し思いのままに。。。
??セルの内容が長文になるのを折り返 したい • Classにmultiline-textを設定する • (本当は用意した当初はTemplateColumnでdiv要素を使って スタイル設定するネタでしたが簡単にできる手段が用意されまし た👏)
??タイトルが長文になるのを折り返した い • TemplateColumn内のHeaderCellItemTempleteを使用 する • いままで、Titleプロパティで設定されていたものが HeaderCellItemTempleteがある場合テンプレートに代わり HeaderCellItemTemplete内に記述されたものがそのまま タイトルに出る
• div要素でスタイル設定すればよい→単なるスタイルシートの知識 があればあとはいける!!
まとめ • HTMLやスタイルシート書きたくないよって思ってUIコンポーネ ント使っているはずが細かいことやり出すとどうしてもHTMLや スタイルシートが顔を出す!! • やっぱり、知識としてはHTMLやスタイルシートを憶えておいて損 はないけどもUIコンポーネントでこれをいかに局所化できるかが 勝負
参考文献 • Welcome to the Fluent UI Blazor components library
• Microsoft Fluent UI Blazor components
おしまい おしまい