首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Silverlight -用DataGrid读写XML-file

Silverlight -用DataGrid读写XML-file
EN

Stack Overflow用户
提问于 2011-07-05 15:26:30
回答 1查看 2.7K关注 0票数 0

我试图将xml-数据绑定到Silverlight数据网格。目前,我一直在“玩”用于Silverlight的DevExpress工具。我不知道它使用这些工具与标准方法有多大的不同,因为我对Silverlight相当陌生。

在他们的网站上,我找到了以下从一个XML文件中检索数据的示例。

现在我希望能够保存我在这个XML文件中所做的修改,也可以添加和删除也会影响XML-file.的行。

代码语言:javascript
复制
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;
    }
 }
}

这可能是一个简单的任务,但我被困住了,因为我不知道在这里需要做什么。希望有人能帮我。

提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2011-07-05 18:52:27

您没有提到如何获取xml文件,因此没有几个选项,一个是将其保存到本地存储并从本地存储加载它,另一个是从主题上在这里一篇文章,两个从服务器检索它并将其保存到服务器上,或者将一个主题的文章保存到在这里或三个任意一个的组合。就使用XML而言,您似乎正在使用linq到xml将数据读取到联系人集合中,我建议您阅读并浏览这些链接。

  1. Linq到Xml示例
  2. 使用在C#中向XML文件添加数据
  3. 使用LINQ创建和保存XML树

Linq到Xml的特点是,它并不是silverlight特有的,这些技能也可以很好地传递给服务器编程。

现在,从datagrid中添加和删除项的任务,取决于您如何去架构您的解决方案,有MVVM或简单的代码背后,我建议您花时间了解MVVM,它是一种非常适合silverlight世界的设计模式,从长远来看,它将为您节省时间。使用MVVM编写一篇关于这个问题域的文章。

编辑

代码语言:javascript
复制
  grid.ItemsSource as  ObservableCollection<Contact>();

会把收藏还给你的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6585136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档