WPF DataGrid显示空的双单元格但正确的列标题

时间:2011-06-07 17:41:20

标签: wpf data-binding datagrid datatable

我正在尝试填充WPF数据网格,但它只显示第一个(!)列的列标题和内容单元格。所有其他单元格都是空的:

enter image description here

DataGrid的定义如下:

<DataGrid ItemsSource="{Binding Classifications, Mode=OneWay}" 
        AutoGenerateColumns="True" HeadersVisibility="Column" />                        

分类在代码隐藏文件中定义,如下所示:

public DataView Classifications
{
    get
    {
        return ClassificationDataTable.GetTable(myData).DefaultView
    }
}

最后这是我的数据生成器:

public static class ClassificationDataTable
{
    public static DataTable GetTable(List<Classification> classifications)
    {  
        DataTable table = new DataTable();

        // build columns
        table.Columns.Add("FruitPrototype", typeof (string));
        foreach (var featureComparison in classifications[0].FeatureComparisons)
            table.Columns.Add(featureComparison.FeatureName, typeof (double));

        // add rows
        foreach (var classification in classifications)
        {
            object[] values = new object[classification.FeatureComparisons.Count+1];
            values[0] = classification.FruitPrototype.FruitType;
            for (int i = 0; i < classification.FeatureComparisons.Count; i++)                   
                values[i + 1] = classification.FeatureComparisons[i].NormalizedDistance;

            table.Rows.Add(values);
        }
        return table;
    }
}

我验证了绑定并且可以确认DataTable的DefaultView确实绑定到了我的DataGrid的ItemsSource。此外,应在网格中显示的double值为!= 0。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

我在Jimmy W的question的帮助下想出来了:我在列名中有一些括号和点,它们以某种方式破坏了细胞的结合。更改

中的功能名称的值
table.Columns.Add(featureComparison.FeatureName, typeof (double));

解决了我的问题。