以前写的了,Silverlight用的人貌似不多。
主要是使用XmlReader读取XML的Attribute数据读取到TreeVIEwItem的header和DataContext中,点击TreeVIEw节点的时候将DataContext取出来。
读取XML核心代码:
private voID LoadCameraListTree(TreeVIEwItem parentItem,XmlReader reader,int CurrentLevel) { CurrentLevel = CurrentLevel + 1; //XmlReader的ReadSubtree不光是该节点的子节点,还包括该节点本身 //因此要跳过第一个节点 int i = 0; while (reader.Read()) { if (0 != i && reader.IsstartElement() && reader.HasAttributes) { TreeVIEwItem item = new TreeVIEwItem(); item.header = reader.GetAttribute("name"); item.DataContext = CurrentLevel.ToString() + "&" + reader.GetAttribute("ID") + "&" + reader.GetAttribute("name"); parentItem.Items.Add(item); LoadCameraListTree(item,reader.ReadSubtree(),CurrentLevel); } if (0 == i) { ++i; } } }
XmlReader reader = XmlReader.Create("demo.xml"); while (reader.Read()) { if (reader.IsstartElement() && reader.GetAttribute("ID") == "1") { int CurrentLevel = 1; TreeVIEwItem item = new TreeVIEwItem(); item.header = reader.GetAttribute("name"); item.DataContext = CurrentLevel.ToString() + "&" + reader.GetAttribute("ID") + "&" + reader.GetAttribute("name"); treeVIEw_XML.Items.Add(item); LoadCameraListTree(item,CurrentLevel); } }
private voID treeVIEw_XML_selecteditemchanged(object sender,RoutedPropertyChangedEventArgs<object> e) { TreeVIEw vIEw = sender as TreeVIEw; TreeVIEwItem SelectedItem = (TreeVIEwItem)vIEw.SelectedItem; string SelectedItem_DataContext = (string)SelectedItem.DataContext; textBlock_DeBUG.Text = SelectedItem_DataContext; string[] SelectedItem_Attributes = SelectedItem_DataContext.Split("&".tochararray()); string SelectedItem_Level = SelectedItem_Attributes[0]; textBox_Level.Text = SelectedItem_Level; textBox_ID.Text = SelectedItem_Attributes[1]; textBox_name.Text = SelectedItem_Attributes[2]; }
完整代码可以从下面的链接下载:
http://download.csdn.net/detail/chenxupro/6351375
运行效果如下:
总结以上是内存溢出为你收集整理的Silverlight使用XmlReader读取XML数据到TreeView中全部内容,希望文章能够帮你解决Silverlight使用XmlReader读取XML数据到TreeView中所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)