我正在尝试填充WPF数据网格,但它只显示第一个(!)列的列标题和内容单元格。所有其他单元格都是空的:
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。
我在这里缺少什么?
答案 0 :(得分:3)
我在Jimmy W的question的帮助下想出来了:我在列名中有一些括号和点,它们以某种方式破坏了细胞的结合。更改
中的功能名称的值table.Columns.Add(featureComparison.FeatureName, typeof (double));
解决了我的问题。