Reputation: 9767
I am not sure what I am doing wrong, but my dataGrid won't populate. It took me a bleeping hour to debug linq, but I figured out that it was indeed working...
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);
}
The above code shows that I am infact getting values out of linq...
3 | CHF | FR Congestive Heart Failure
2 | COPD | FR Chronic Obstructive Pulmonary Disease
But down below my model is null? I can't figure out what it could be? It is not like I am getting null values. I don't think it has to do with wpf data binding, but I am stumped on what it could be.
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>;
}
Upvotes: 0
Views: 79
Reputation: 2246
I don't think you can cast to observable collection... You need to pass your collection to the constructor of 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);
}
Upvotes: 1