2013-11-14 2 views
0

У меня возникают проблемы при загрузке xml-файла в Observable Collection.Загрузка из коллекции XML в Observable

Мой XML выглядеть

<?xml version="1.0" encoding="utf-8"?> 
<Stock> 
    <Assortment> 
    <Item>Адельфан - эзидрекс таб №10</Item> 
    <Quantity>89</Quantity> 
    <Price>3.0000</Price> 
    <Summ>267</Summ> 
    <Price1>3.0000</Price1> 
    <Summ1>267</Summ1> 
    <ValidDate>01.01.2031</ValidDate> 
    <Manufacturer>КРКА</Manufacturer> 
    </Assortment> 
    <Assortment> 
    <Item>Адельфан - эзидрекс таб №10</Item> 
    <Quantity>8</Quantity> 
    <Price>3.0000</Price> 
    <Summ>24</Summ> 
    <Price1>3.0000</Price1> 
    <Summ1>24</Summ1> 
    <ValidDate>01.01.2019</ValidDate> 
    <Manufacturer>КРКА</Manufacturer> 
    </Assortment> 
</Stock> 

И мой код, который я попробовал это.

  XDocument xml = XDocument.Load(filename); 
       foreach (XElement xe in xml.Elements("Assortment")) 
       { 
        _dummyCollection1.Add(new DummyClass1() 
        { 
         Наименование = xe.Element("Item").Value, 
         Количество = xe.Element("Quantity").Value, 
         Цена = xe.Element("Price").Value, 
         Сумма = xe.Element("Summ").Value, 
         Цена1 = xe.Element("Price1").Value, 
         Сумма1 = xe.Element("Summ1").Value, 
         Срокгодности = xe.Element("ValidDate").Value, 
         Производитель = xe.Element("Manufacturer").Value 
        }); 
       } 
       BuyDataGrid.ItemsSource = _dummyCollection1; 

Я получаю пустой DataGrid. Как передать xml в Observable Collection?

ответ

1

Я нашел, как сделать это, если кому-то понадобится;

    XmlDocument doc = new XmlDocument(); 
        doc.Load(filename); 
        XmlElement root = doc.DocumentElement; 
        XmlNodeList nodes = root.SelectNodes("Assortment"); 
        foreach (XmlNode node in nodes) 
        { 
         _dummyCollection1.Add(new DummyClass1() 
         { 
          Наименование = node["Item"].InnerText, 
          Количество = node["Quantity"].InnerText, 
          Цена = node["Price"].InnerText, 
          Сумма = node["Summ"].InnerText, 
          Цена1 = node["Price1"].InnerText, 
          Сумма1 = node["Summ1"].InnerText, 
          Срокгодности = node["ValidDate"].InnerText, 
          Производитель = node["Manufacturer"].InnerText 
         }); 
        } 
        BuyDataGrid.ItemsSource = _dummyCollection1; 
0

Ваш класс, который вы планируете использовать в качестве объекта для коллекции ObservableCollection должен реализовать INotifyPropertyChanged

это мой ответ на примере, как заполнить модель для DataGrid

example

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