簡體   English   中英

Silverlight - 使用 DataGrid 讀寫 XML 文件

[英]Silverlight - read and write to XML-file with DataGrid

我正在嘗試將 xml-data 綁定到 Silverlight 數據網格。 目前我一直在“玩”Silverlight 的 DevExpress 工具。 我不知道使用這些工具與標准方式相比有何不同,因為我對 Silverlight 還很陌生。

在他們的網站上,我找到了以下示例來從一個 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;
    }
 }
}

這可能是一項簡單的任務,但我被困住了,因為我不知道這里需要做什么。 希望有人可以幫助我。

先感謝您!

您沒有提及如何獲取xml文件,因此選項很少,一個將其保存到本地存儲並從本地存儲加載,這是一篇關於該主題的文章,兩個從服務器檢索它並將其保存到服務器,這里有一篇關於這個主題的文章或三篇文章的組合。 至於使用 XML,看起來您正在使用 linq 到 xml 將數據讀入聯系人集合,我建議您閱讀並瀏覽這些鏈接

  1. Linq 至 Xml 樣品
  2. 使用 LINQ 到 XML 將數據添加到 ZD7EFA19FBE7D3972FD5ADB602422 中的 XML 文件中
  3. 使用 LINQ 到 XML 創建和保存 XML 樹

關於 Linq 到 Xml 的問題在於它不是 silverlight 特有的,這些技能也可以很好地轉移到服務器編程。

現在從數據網格中添加和刪除項目的任務,取決於您打算如何構建您的解決方案,有 MVVM 或直接的代碼隱藏,我建議花時間了解 MVVM,它是一種非常適合的設計模式在 silverlight 的世界中,從長遠來看,它將為您節省頭發。 這是一篇關於使用MVVM的問題域的文章。

編輯

  grid.ItemsSource as  ObservableCollection<Contact>();

會把收藏還給你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM