WPF DataGridTextColumn动态编码

时间:2015-06-17 10:50:29

标签: c# wpf

我想在aprsing一些表后动态创建一个DataGrid。 为此,我创建了一个要填充的DataGrid:

<DataGrid Name="dataGrid" BorderBrush="Transparent" 
    Background="#3FFFFFFF"  
    Padding="1" AlternatingRowBackground="#66CAE4FF" CanUserAddRows="False"  
    IsManipulationEnabled="True" ColumnHeaderHeight="30">
</DataGrid>

该表的内容将是一个二维数组。在填写表之前,我需要创建一个标题,因为它对于所有表内容都是相同的。 我将所有标题字符串保存在列表中:

foreach (string headerItem in header)
{
    DataGridTextColumn head = new DataGridTextColumn { Header = headerItem };
    dataGrid.Columns.Add(head);
}

但我的窗户是空的。我只看到灰色的ColumnHeader。

2 个答案:

答案 0 :(得分:0)

您可以在填充表格后设置列名称,因此您具有正确的列数:

for (int i=0;i&lt;header.Length;i++)
  dataGrid.Columns[index].Header = header[index];

答案 1 :(得分:0)

对我来说效果很好。

我尝试在双击数据网格时添加标题(仅用于说明),并在我的示例MainWindow.xaml.cs中使用此事件处理程序

private void dataGrid_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
        var header = new List<string>() { "asdasd" };
        foreach (string headerItem in header)
        {
            DataGridTextColumn head = new DataGridTextColumn { Header = headerItem };
            dataGrid.Columns.Add(head);
        }
    }

dynamic headers