2011-07-05 4 views
0

xml-dataをSilverlightのデータグリッドにバインドしようとしています。現時点では、私はSilverlight用のDevExpressツールを使って "遊んでいます"。私はSilverlightが新しくなって以来、標準的な方法と比べてこれらのツールをどのように使っているのか分かりません。Silverlight - DataGridでXMLファイルを読み書きする

ウェブサイトでは、1つのXMLファイルからデータを取得するための次の例が見つかりました。

私はデータグリッド内でこのXMLファイルに加えた変更を保存し、XMLファイルにも影響する行を追加したり削除したりできます。

namespace XMLReadWrite { 
public partial class MainPage : UserControl { 

    public MainPage() { 
     InitializeComponent(); 

     grid.ItemsSource = GetData(); 
    } 
    XDocument doc = XDocument.Load("Contacts.xml", LoadOptions.None); 

    ObservableCollection<Contact> GetData() { 



     var items = from item in doc.Descendants("Contacts") 
        select new Contact() { 
         FirstName = item.Element("FirstName").Value, 
         LastName = item.Element("LastName").Value, 
         Company = item.Element("Company").Value, 
         City = item.Element("City").Value 
         //ID = int.Parse(item.Element("ID").Value) 
        }; 

     ObservableCollection<Contact> contacts = new ObservableCollection<Contact>(); 
     foreach (Contact contact in items) { 
      contacts.Add(contact); 
     } 
     return contacts; 
    } 

    private void SaveToXML() 
    { } 


    private void Save_Button_Click(object sender, RoutedEventArgs e) 
    { 
     SaveToXML(); 
    }   
} 

public class Contact { 
    public int ID { 
     get; 
     set; 
    } 
    public string FirstName { 
     get; 
     set; 
    } 
    public string LastName { 
     get; 
     set; 
    } 
    public string Company { 
     get; 
     set; 
    } 

    public string City 
    { 
     get; 
     set; 
    } 
} 
} 

これはおそらく、簡単な作業ですが、私はここで何をすべきかの手掛かりを持っていないので、私はこだわっています。 うまくいけば、誰かが私を助けてくれることを願っています。

ありがとうございます!

+0

どうしますか?どのようにアイテムをXMLに保存するのですか? – MerickOWA

+0

太字のテキストをチェックしてください:-) – TonyC

答えて

0

xmlファイルを取得する方法については言及していないので、いくつかのオプションがあります。ローカルストレージに保存し、ローカルストレージからロードします。heres件名の記事、2つはサーバーから取得して保存しますサーバーには、heresの記事または3つの組み合わせがあります。限りXMLでの作業として、それはあなたが連絡先のコレクションにデータを読み込むためにXMLにLINQを使用しているように、私は読んで、これらのリンク

  1. Linq to Xml Samples
  2. Using LINQ to XML to Add Data to XML File in C#
  3. Creating and Saving XML tree using LINQ to XML
  4. 介さお勧めになります

Linq to Xmlについてのことは、Silverlightに固有のものではなく、これらのスキルもサーバープログラミングにうまく対応しています。

あなたのソリューションを設計する方法、あなたのMVVMや簡単なコードビハインドにどのように依存するかによって、データグリッドからアイテムを追加したり削除したりする作業は、MVVM、そのデザインパターンを知る時間を費やすことをお勧めしますそれはシルバーライトの世界で非常によく合う、それは長期的にあなたの髪を節約します。 Heres MVVMを使用してこの問題のドメインに関する記事。

grid.ItemsSource as ObservableCollection<Contact>(); 

EDITは、コレクションをあなたに戻って得られます。

+0

情報とリンクの材料をありがとう!残念ながら、私は変更されたグリッドセルを使用してXMLファイルを更新する方法を理解できません。 – TonyC

+0

あなたのコレクションには、変更された各連絡先に自動的に変更が適用されます。リンクに記載されている方法を使用してコレクションをファイルにシリアル化するだけであれば、これが正しいかどうかを確認してください。 –

関連する問題