Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Fluent UI BlazorのDataGridの使い方
Search
tomokusaba
October 27, 2023
Programming
2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Fluent UI BlazorのDataGridの使い方
.NETラボ勉強会2023年10月
Fluent UI BlazorのDataGridの使い方
https://dotnetlab.connpass.com/event/296773/
tomokusaba
October 27, 2023
More Decks by tomokusaba
See All by tomokusaba
30代後半からでも遅くないキャリア形成
tomokusaba
0
250
GitHub Copilotで書いたコード、レビューはどうしてる?
tomokusaba
0
51
Azure CAFで考えるAIエージェント導入の進め方
tomokusaba
1
110
GitHub Copilot app時代の開発フロー
tomokusaba
0
64
オートマトンと字句解析でRoslynを読む
tomokusaba
0
170
GitHub Copilot appとGitHub Copilot CLIとVS CodeのCopilot Chat Agent Modeの使い分け
tomokusaba
0
170
GitHub Copilot app最速の発信の裏側
tomokusaba
1
570
自宅サーバの変遷
tomokusaba
0
910
Microsoft Build Keynoteふりかえり
tomokusaba
0
180
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
280
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2k
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.5k
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
56
38k
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
700
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
370
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
240
What We Talk About When We Talk About XP
m_seki
2
560
Webの地図
yosuke_furukawa
PRO
6
4.3k
Intent as Code
shoppingjaws
6
950
Building an Out-of-Order CPU
latte72
1
760
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
140
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.5k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
330
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
500
Test your architecture with Archunit
thirion
2
2.4k
Into the Great Unknown - MozCon
thekraken
41
2.7k
What's in a price? How to price your products and services
michaelherold
247
13k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Done Done
chrislema
186
16k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
240
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
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
おしまい おしまい