DataGridViewには、ツリービューとして階層構造を表示することができる機能はありません。しかし、ツリー表示に近いUIを実現するための方法がいくつかあります。以下に代表的な方法を紹介します。

  1. ネストされたDataGridViewを使用する方法 この方法では、親子関係のあるデータを持つテーブルを、親テーブルと子テーブルに分けます。そして、親テーブルの各レコードに対して子テーブルのDataGridViewをネストします。親テーブルの各レコードを展開すると、子テーブルのDataGridViewが表示されます。 この方法の利点は、階層構造を簡単に表現できることです。また、DataGridViewの標準機能であるため、カスタマイズも容易です。

    【VBA】DataGridViewでツリー作成(ネスト)

  2. ノードを追加するカスタムコントロールを作成する方法 この方法では、DataGridViewにノードを追加するカスタムコントロールを作成します。ノードの表示には、DataGridViewの行やセルを使用することができます。また、ノードの展開状態を管理するための状態フラグを用意する必要があります。 この方法の利点は、DataGridViewに依存しないため、より自由度の高いカスタマイズが可能であることです。ただし、カスタムコントロールの作成には一定のプログラミングスキルが必要です。

  3. TreeViewとDataGridViewを組み合わせる方法 この方法では、TreeViewとDataGridViewを組み合わせて、ツリー表示に近いUIを実現します。TreeViewには、親ノードが選択されたときに、選択された親ノードに関連するデータをDataGridViewに表示するためのコードを実装します。 この方法の利点は、TreeViewのノードの展開状態を利用するため、ツリー表示に近いUIを簡単に実現できることです。ただし、ノードの展開状態を管理するためのコードが必要になります。

以上の方法のうち、最も一般的なのは1番目の「ネストされたDataGridViewを使用する方法」です。DataGridViewの標準機能であり、カスタマイズも容易であるため、多くの開発者に利用されています。

Accessファイルに接続して、データを取得し、DataGridViewに表示する。~パソコンの小技・備忘録

Display treeviewitem as grid rows in wpf

【WinForms】DataGridViewの高速化のためにやったこと - Qiita