はじめに
Microsoft Excel のように、テーブルの列をフィルタしたかった
(完成イメージ)実際のエクセルのフィルタの様子
きっかけ
- Qiita の Q&A ? に同じ動機をもった方の質問が投稿されていた
- Prism とか ReactiveProperty とかつかえば、できそうな気がした
※ 結果として、けっこう時間かけた割には納得できたものはできなかった・・・
諸条件
- .NET Core 3.1
- Windows 10
実際に動くもの
一見は百聞に如かず、なので、とりあえず動くものの様子(GIF動画)
テーブルのフィルタリング
フィルタリング候補自体のフィルタリング
うまく解決できなかったところ
今後解消するかわからないけど、つまづいて今なお解決できていないところを書き残す
DataGrid
の列インデックスが取得できない
DataGrid
には、列が3つ存在している
DataGrid.Columns
プロパティは配列になっている
DataGrid.Columns
の添え字[0]
を開くと、DisplayIndex
があり、たしかに0
となっている
ヘッダーの▼を押したときに、このDisplayIndex
をダイアログに渡したいのだが、できなかった
Datatemplate
から自分の列のインデックスがわからない
参考にさせていただいた記事など
DataGrid のヘッダーをカスタマイズする関連
バインディング全般
有償コンポーネントなど
自分はつかったことないけど、会社名くらいは知っている
.NET の有償コンポーネントの一覧には、だいたいエクセルチックなコンポーネントも1つは含まれている