WPF应用程序绑定XML数据

在本文中,将探讨如何开发一个WPF应用程序,该程序能够使用LINQto XML类绑定到存储在文件系统中的XML数据。这需要在XAML和代码后台进行一些微小的更改,以便实现与之前示例中相同的功能。

更改1:XAML中的XML数据解析

请记住,在之前的示例中将XML数据块放在了CDATA部分,与XAML代码内联。通过在ObjectDataProvider中使用MethodName="Parse",这个XML数据被解析并存储为XElement实例。现在,让来看一下新的XAML标记中的资源部分。

<ObjectDataProvider x:Key="LoadedBooks" ObjectType="{x:Type xlinq:XElement}" MethodName="Load"> <ObjectDataProvider.MethodParameters> <system:String>d:\bala\mydata.xml</system:String> </ObjectDataProvider.MethodParameters> </ObjectDataProvider>

在上面的标记中,通过使用MethodName="Load"并指定XML文件的位置(路径),创建了XElement实例。

更改2:XML文件中的数据

XML数据存储在mydata.xml文件中。这个XML数据本身与在之前示例中内联使用的数据不同。它有一个带有“id”属性和“title”元素的书籍列表。

<books xmlns=""> <book id="1"> <title>Welcome, Home!</title> </book> <book id="2"> <title>Star Letters</title> </book> <book id="3"> <title>Pink and Blue</title> </book> <book id="4"> <title>Pirates of the Indian Ocean</title> </book> </books>

更改3:数据绑定的更改

为了反映数据绑定方面的这些更改,WPF控件的标记也略有变化。不再是Text="{Binding Path=Value}",现在需要编写为Text="{Binding Path=Element[title].Value}"。

更改4:添加新书籍的处理

在添加现有列表中的新书籍时,需要对处理程序“OnAddBook”进行以下更改:

XElement newBook = new XElement(mybooks + "book", new XAttribute("id", tbAddID.Text)); newBook.Add(new XElement("title", tbAddValue.Text)); bookList.LastNode.AddAfterSelf("", newBook, "\r\n"); lbBooks.Items.Refresh();
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485