我正在尝试将xml-data绑定到Silverlight数据网格。目前,我一直在玩“Silverlight的DevExpress工具”。我不知道使用这些工具与标准方式有多么不同,因为我对Silverlight相当新。
在他们的网站上,我发现以下示例从一个XML文件中检索数据。
现在我希望能够将我在datagrid中所做的修改保存到此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 :(得分:0)
您没有提到如何获取xml文件,因此几乎没有选项,一个将其保存到本地存储并从本地存储加载,heres有关该主题的文章,两个从服务器检索它并将其保存到服务器,heres关于该主题的文章或三者中的任何一个组合。就使用XML而言,看起来您正在使用linq to xml将数据读入联系人集合,我建议您阅读并浏览这些链接
关于Linq到Xml的事情是它不是特定于silverlight,这些技能也很好地转移到服务器编程。
现在从数据网格中添加和删除项目的任务,取决于您希望如何构建解决方案,MVVM或简单的代码隐藏,id建议花时间去了解MVVM,它的设计模式是非常适合银光的世界,从长远来看,它会为你节省头发。 Heres使用MVVM撰写关于此问题域的文章。
修改强>
grid.ItemsSource as ObservableCollection<Contact>();
会回复你的收藏品。