DataTableからプログラムでWPF DataGridを埋め込む必要があります。列のリストは設計時にはわかりません。WPF DataGridのテンプレートと内容をプログラムで設定する方法はありますか?
列は、単一のラベルを持つ単純なテンプレートに基づいて手動で生成する必要があります(AutoGeneratingColumnイベント?)。 Label.Contentは列名です。今すぐバインド許可 - テンプレートは、XAMLで作成することができますが、他のすべてはC言語である必要があります
少し複雑なアプローチは行です。データセルテンプレートには単一のラベルまたはテキストボックスが必要ですが、セルテンプレートは実行時に設定する必要があります。例えば、文字列はセル内で5文字以上の長さで表現されなければならず、次にラベルベースのテンプレートが使用されるべきです。それ以外の場合は、TextBoxテンプレートを使用する必要があります。 この場合も、テンプレートはXAMLでのみ作成できます。充填データは、C#で
を実行する必要はここでデータを生成するためにで開始するいくつかのコードです:あなたはDataGridTextColumnを定義することで、プログラムでデータグリッドの列を追加し、その幅を設定することができ
DataTable myTable = new DataTable(tableName);
myTable.Columns.Add(new DataColumn("id", typeof(int)));
myTable.Columns.Add(new DataColumn("name", typeof(string)));
myTable.Rows.Add(new object[] {1, "label"});
myTable.Rows.Add(new object[] {2, "text box"});