このトピックでは、セルコンテンツをカスタマイズする方法について説明します。たとえば、フィルタ行を作成する場合は、次の手順に従います。次の図のように、最初の行の各セルに TextBox を配置したグリッドを作成して、そこに入力したテキストによってグリッドがフィルタ処理されるようにすることができます。
カスタム行が記述された新しいクラスファイルを追加することが必要になる場合があります。たとえば、次の手順に従って新しいクラスファイルを追加します。
これにより、DataGridRow から継承するようにクラスが更新されます。ファイルは、作成後に DataGridRow から継承する必要があります。
クラスを追加すると、それを使ってグリッドにフィルタ処理を実装できます。
カスタム行のセルコンテンツを指定するためにオーバーライドする必要があるメソッドは、カスタム列で公開されているメソッドとほぼ同じです。カスタムのセルコンテンツを実装するには、以下のメソッドをオーバーライドする必要があります。
フィルタ行では、すべての列に対応するセルがあるので、HasCellPresenter メソッドは常に True を返します。サマリー行など他のシナリオでは、セルは集計関数がある列にのみ存在します。
GetCellContentRecyclingKey メソッドは typeof(TextBox) を返すので、それによってテキストボックスを再利用できます。CreateCellContent は、その新しいインスタンスを作成します。次のコードを追加します。
前の手順では各セルに TextBox を追加しましたが、これらのコントロールは、現時点では何も実行しません。フィルタ処理を実装するには、次の手順に従います。