2017-02-12 27 views
0

xmlをコレクションにインポートしてDataGridで表示する方法 My Xml filexmlファイルをコレクションのC#ウィンドウに読み込む方法

私が試した

private void addToXml(bool value) 
{ 
    List<klientprywatny> klienci = new List<klientprywatny>(); 
    klienci.Add(new klientprywatny() { Imie = txtImie.Text, Nazwisko = txtNazwisko.Text, miasto = txtMiasto.Text, ulica = txtUlica.Text, 
     kodpocztowy = txtKodPocztowy.Text, telefon = txtTelefon.Text, email = txtEmail.Text, numer = txtNumer.Text }); 


    XDocument doc = XDocument.Load("Osoby.xml"); 
    var osoba = 
     from klient in klienci 
     orderby klient.Nazwisko, klient.Imie 
     select new XElement("osoba", 
      new XElement("imie", klient.Imie), 
       new XElement("nazwisko", klient.Nazwisko), 
       new XElement("miasto", klient.miasto), 
       new XElement("ulica", klient.ulica), 
       new XElement("kodpocztowy", klient.kodpocztowy), 
       new XElement("telefon", klient.telefon), 
       new XElement("email", klient.email), 
       new XElement("numer", klient.numer) 
     ); 

    doc.Root.Element("prywatni").Add(osoba); 
    doc.Save("Osoby.xml"); 

} 

XMLに新しいレコードを追加 XDocumentのxml = XDocument.Load( "Osoby.xml");

 List<klientprywatny> klienci = (
      from osoba in xml.Root.Elements("osoba") 
      select new osoba(
       osoba.Element("imie").Value, 
       osoba.Element("nazwisko").Value, 
       osoba.Element("miasto").Value, 
       osoba.Element("ulica").Value, 
       osoba.Element("kodpocztowy").Value, 
       osoba.Element("telefon").Value, 
       osoba.Element("email").Value, 
       osoba.Element("numer").Value 
       ) 
      ).ToList<klientprywatny>(); 

が、それは次のようにあなたがあなたのリストにXMLから要素を取得することができます

答えて

0

を動作しません:

IEnumerable<osoba> result = from c in xml.Descendants("osoba") 
          select new osoba() 
          { 
           Imie = (string)c.Element("imie").Value, 
           Nazwisko = (string)c.Element("nazwisko").Value, 
           miasto = (string)c.Element("miasto").Value, 
           ulica = (string)c.Element("ulicia").Value, 
           kodpocztowy = (string)c.Element("kodpocztowy").Value, 
           email = (string)c.Element("telefon").Value, 
           numer = (string)c.Element("email").Value, 
           telefon = (string)c.Element("numer").Value, 
          }; 

私はこのコードをテストしてみた、それが完璧に動作します。

希望します。

+0

このコレクションをdatagrindviewからバインドして編集できるようにするには次のステップは、私のXMLファイルに保存することです。 – ari011

関連する問題