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配列に基づいてこのデータグリッドを生成します。

|_+_|

コンプリート コードアドレス