WPFDataGrid動的列の概要
Wpf Datagrid Dynamic Column Summary
特別な場合には、動的な列を持つDataGridが発生します(前の列の固定数の列が固定されていないなど)。ここでは最初の列で固定され、column1は単純なレコードとして決定されません。
最初に文字列の配列(そしておそらくクラスの複雑なコレクション、ここに配列の例があります)を与えます:
private static string[] dynamicColumns
DataGridは自動的に列を生成し、この配列の要素数でデータをバインドします。
次に、配列に値を割り当てます。
dynamicColumns = new string[6] { 'Column1', 'Column2', 'Column3', 'Column4', 'Column5', 'Column6' }//Assume 6 columns
フロントエンドはDataGridを提供します:
public class NewTestItem { private string idOrDescription public string IdOrDescription { get { return idOrDescription } set { idOrDescription = value } } private string column1 public string Column1 { get { return column1 } set { column1 = value } } private string column2 public string Column2 { get { return column2 } set { column2 = value } } private string column3 public string Column3 { get { return column3 } set { column3 = value } } private string column4 public string Column4 { get { return column4 } set { column4 = value } } private string column5 public string Column5 { get { return column5 } set { column5 = value } } }
次に、例を使用してテストをシミュレートします。
まず、データグリッドの各行のデータ型としてエンティティクラスを作成します。
private void GenerateGrid(object obj) { object[] array = (object[])obj grid = array[0] as DataGrid var columnIdOrDescription = new DataGridTextColumn() columnIdOrDescription.Header = 'Project' columnIdOrDescription.Binding = new Binding('IdOrDescription') columnIdOrDescription.Width = new DataGridLength(1, DataGridLengthUnitType.Star) columnIdOrDescription.CellStyle = null grid.Columns.Add(columnIdOrDescription) for (int i = 0 i dynamicColumns配列に基づいてこのデータグリッドを生成します。
|_+_|
コンプリート コードアドレス