WPFDataGridの自動生成された列でCellTemplateSelectorを使用してDataTemplateCellを強制する
-
28-10-2019 - |
質問
DataTableをバインドするデータグリッドがあります。データテーブルにどの行または列が含まれるかわからないため、データグリッドのAutogenerateColumnsプロパティをtrueに設定します。私が確かに知っている唯一のことは、データテーブルのすべてのセルがField型であり、FieldクラスにはTypeという列挙型プロパティがあるということです。 ジェネラコディセタグプレ
私がしたいのは、自動生成されたすべての列を、CellTemplateSelectorプロパティがFieldCellTemaplateSelectorオブジェクトに設定されているDataTemplateColumnsにすることです。これを行うには、次のコードAutoGeneratingColumnイベントを追加します。 ジェネラコディセタグプレ
FieldCellTemplateSelectorクラスのコードは次のとおりです。 ジェネラコディセタグプレ
SelectTemplateメソッドで、セルに含まれているFieldオブジェクトを取得し、そのフィールドのTypeプロパティに基づいて関連するデータテンプレートを返す必要があります。問題は、渡されるitemパラメーターがFieldタイプではなく、DataRowViewタイプであるということです。
次の手順でDataGridCellオブジェクトを取得できます: ジェネラコディセタグプレ
ただし、セルのデータコンテキストもDataRowViewタイプです。私のフィールドはどうなりましたか?消えましたか?誰かが私にそれを得る方法やこの問題の解決策を達成する方法を教えてもらえますか
よろしくお願いします。
解決
同じ問題がありました。このリンクで答えを見つけました。
http:// social。msdn.microsoft.com/Forums/en/wpf/thread/8b2e94b7-3c44-4642-8acc-851de5285062