2013-06-17 5 views
0

Я не уверен, что я делаю неправильно, но мой dataGrid не будет заполняться. Потребовалось мне Bleeping час для отладки LINQ, но я понял, что это действительно работает ...Мой DataGrid WPF не будет заполняться данными

 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); 
     } 

Приведенный выше код показывает, что я Infact получать значения из 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>; 
     } 
+0

не могу видеть любой код МОФ. поэтому PLS изменить свой вопрос. вы пытались использовать .ToList() при создании ObservableCollection ? – blindmeis

+0

нет ... я этого не сделал. – SoftwareSavant

ответ

1

Я не думаю, что вы можете бросить к наблюдаемым коллекции ... Вы должны передать свою коллекцию в конструктор 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); 
} 
+0

Не знал этого. Я определенно wpf noob. Благодарю. – SoftwareSavant

+0

Нет проблем :) каждый должен где-то начать ... –

Смежные вопросы