【问题标题】:My WPF DataGrid won't populate with data我的 WPF DataGrid 不会填充数据
【发布时间】:2013-06-17 23:02:12
【问题描述】:

我不确定我做错了什么,但我的 dataGrid 不会填充。 我花了一个小时来调试 linq,但我发现它确实在工作......

        foreach (XElement elm in xDocument.Element("ArrayOfPopulation").Elements("Population")) {
            Console.Write(elm.Element("id").Value+ " | ");
            Console.Write(elm.Element("name").Value+ " | ");
            Console.WriteLine(elm.Element("description").Value);
        }

上面的代码表明我实际上是从 linq 中获取值...

3 | CHF | FR Congestive Heart Failure
2 | COPD | FR Chronic Obstructive Pulmonary Disease

但是我的模型下面是空的?我无法弄清楚它可能是什么?这不像我得到空值。我不认为它与 wpf 数据绑定有关,但我很难理解它可能是什么。

        try {
            XElement elem = xDocument.Element("ArrayOfPopulation");
            popModel = 
                xDocument
                .Element("ArrayOfPopulation")
                .Elements("Population")
                .Select(template => new PopulationModel {
                    populationID = template.Element("id").Value,
                    PopName = template.Element("name").Value,
                    description = template.Element("description").Value,
                    populationType = template.Element("owner").Element("type").Value,
                    isActive = Boolean.Parse(template.Element("isActive").Value)
                })as ObservableCollection<PopulationModel>;
        }

【问题讨论】:

  • 看不到任何 wpf 代码。所以请编辑你的问题。您在创建 ObservableCollection 时尝试使用 .ToList() 吗?

标签: wpf linq datagrid


【解决方案1】:

我不认为你可以转换为 observable 集合...你需要将你的集合传递给 ObservableCollection 的构造函数

try {
    XElement elem = xDocument.Element("ArrayOfPopulation");
    popModel = 
        xDocument
        .Element("ArrayOfPopulation")
        .Elements("Population")
        .Select(template => new PopulationModel {
            populationID = template.Element("id").Value,
            PopName = template.Element("name").Value,
            description = template.Element("description").Value,
            populationType = template.Element("owner").Element("type").Value,
            isActive = Boolean.Parse(template.Element("isActive").Value)
        });
    var popModelCollection = new ObservableCollection<PopulationModel>(popModel);
}

【讨论】:

  • 不知道。我绝对是 wpf 菜鸟。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-03
  • 2011-09-24
  • 1970-01-01
  • 1970-01-01
  • 2011-03-01
相关资源
最近更新 更多