此时我推荐使用 XmlDataProvider 提供数据,使用 XmlDataProvider 可以将所有逻辑都放在 XAML 上,十分清真 是否有小伙伴好奇 Binding 的 XPath 是用在哪里的 其实在使用 XmlDataProvider 提供数据,绑定就需要用到 XPath 属性,例如我需要定义书籍列表,书籍信息包括了 ISBN 序列号以及书名等信息,此时的定义可以是如下 <Grid.Resources > <XmlDataProvider x:Key="InventoryData" XPath="Books"> <x:XData> </Book> </Books> </x:XData> </XmlDataProvider
但是默认的列表是垂直的,如果需要使用水平的,就需要使用 ItemsPanel 设置使用的类 先添加一些代码到资源,下面就可以使用这里的资源 <Grid.Resources> <XmlDataProvider </Book> </Books> </x:XData> </XmlDataProvider 代码全部都在 xaml 写,因为神树说在后台写不好 <Grid> <Grid.Resources> <XmlDataProvider x:Key="InventoryData </Book> </Books> </x:XData> </XmlDataProvider
但是默认的列表是垂直的,如果需要使用水平的,就需要使用 ItemsPanel 设置使用的类 先添加一些代码到资源,下面就可以使用这里的资源 <Grid.Resources> <XmlDataProvider </Book> </Books> </x:XData> </XmlDataProvider </ListView.ItemsPanel> 代码全部都在 xaml 写,因为神树说在后台写不好 <Grid> <Grid.Resources> <XmlDataProvider </Book> </Books> </x:XData> </XmlDataProvider
主要用到XmlDataProvider类. 使用XmlDataProvider.Source属性指定XML文件的路径或通过XmlDataProvider.Document指定XML文档对象,XmlDataProvider.XPath属性指定绑定的路径 ComboBoxItem> <ComboBoxItem>English</ComboBoxItem> </ComboBox> </StackPanel> 在后台代码中,将XmlDataProvider 对象绑定到界面即可 XmlDocument doc = new XmlDocument(); XmlDataProvider xdp = new XmlDataProvider(); doc.Load(
进行绑定数据 XmlDataProvider dp = new XmlDataProvider(); dp.Document = doc; this.listView1.SetBinding(ListView.ItemsSourceProperty, new Binding() { Source=dp}); 绑定XMl使用到了XmlDataProvider ,这个类是将XMl做为数据源源的一种快捷方式.XmlDataPrivider有个Source属性,可以使用它直接指定XML文档地址(无论XML文档是存储在本地还是网络位置),所以也可以这么写 XmlDataProvider dp = new XmlDataProvider(); dp.Source = new Uri(@"C:\资料\f盘\代码\c#\WPF\TreeView\TestSource 上面使用的XmlDataProvider,这两个类的父类都是DataSourceProvider抽象类。 现在做一个这样例子。
SwitchButton_Click(object sender, RoutedEventArgs e) { // TODO: Switch Language XmlDataProvider provider = TryFindResource("Lang") as XmlDataProvider; if (provider == null)
--数据源--> <XmlDataProvider x:Key="dataSource"> <x:XData> <Media xmlns <DVD Title="《十面埋伏》"/> </Media> </x:XData> </XmlDataProvider
、ObservableCollection<T> 经常把集合作为ItemsControl派生类的数据源 *ADO.NET数据对象:DataTable和DataView等 *XML,使用XmlDataProvider ListView> </StackPanel> //方法1 //XmlDocument doc = new XmlDocument(); //doc.Load(@"D:\RawData.xml"); //XmlDataProvider xdp = new XmlDataProvider(); //xdp.Document = doc; //xdp.XPath = @"/StudentList/Student"; //使用Xpath选择需要暴露的数据 //方法2 XmlDataProvider xdp = new XmlDataProvider(); xdp.Source = new Uri(@"D:\RawData.xml"); xdp.XPath
WPF把包含数据的对象称为数据源,用于把数据源中的数据提供给数据使用者的对象被称做是数据提供者,WPF中包含多种数据提供者,其中一个类名叫做XmlDataProvider实例,那么XmlDataProvider
下面的代码使用XmlDataProvider作为数据源(其XPath指出的必须是一组节点),请注意细节之处的变化: <Window x:Class="WPFDataTemplateUseXML.MainWindow --数据源--> <<em>XmlDataProvider</em> x:Key="ds" XPath="Units/Unit"> <x:XData> <Unit Year="2005" Price="180"/> </Units> </x:XData> </XmlDataProvider
示例包括MainWindow.xaml文件,使用了StackPanel、XmlDataProvider以及ItemsControl,还展示了如何根据任务类型进行分组。