WPF DataGrid показывает пустые двойные ячейки, но правильные заголовки столбцов - PullRequest
2 голосов
/ 07 июня 2011

Я пытаюсь заполнить таблицу данных 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;
    }
}

Я проверил привязку и могу подтвердить, что DefaultView DataTable действительно привязан к ItemsSource моей DataGrid. Кроме того, двойные значения, которые должны быть показаны в сетке:! = 0.

Что мне здесь не хватает?

1 Ответ

3 голосов
/ 08 июня 2011

Я понял это с помощью вопроса Джимми В. : у меня было несколько скобок и точек в именах столбцов, которые каким-то образом нарушали связывание ячеек.Изменение значений имен элементов в

table.Columns.Add(featureComparison.FeatureName, typeof (double));

решило мою проблему.

...