1,rss实现接口:INotifyPRopertyChanged(using System.ComponentModel;) 2,输入固定代码 public event PropertyChangedEventHandler PropertyChanged; void OnPropertyChanged(string propName) { if (PropertyChanged!=null) { PropertyChanged(this, new PropertyChangedEventArgs(propName)); } }
3,修改set和增加IsSelected(因为这个属性要和treeview的IsSelected对应) public string Text { get { return text; } set { text = value; OnPropertyChanged(“Text”); } }
string xmlUrl; public string XmlUrl { //createChilren的时候new 把XmlUrl 读取并赋值 get { return xmlUrl; } set { xmlUrl = value; OnPropertyChanged("XmlUrl"); } }public bool IsSelected { get { return isSelected; } set { isSelected = value; OnPropertyChanged(“IsSelected”); }
}
4,界面的话增加
<TreeView x:Name="tr_1" TreeViewItem.Selected="TreeView_Selected"> <TreeView.ItemContainerStyle> <Style TargetType="{x:Type TreeViewItem}"> <!-- <Setter Property="IsExpanded" Value="{Binding IsExpanded}"/> 预留--> <!-- <Setter Property="Background" Value="Red"/>/> 预留--> <Setter Property="IsSelected" Value="{Binding IsSelected}"/> </Style> </TreeView.ItemContainerStyle>6,绑定好后就是处理TreeView_Selected函数了
private void TreeView_Selected(object sender, RoutedEventArgs e) { TreeViewItem tviSelected = e.OriginalSource as TreeViewItem; Student std = (Student)tviSelected.Header; MessageBox.Show(std.Name); }//
上面测试了选择的的确是student数据对象
下面是循环读取条目的代码,treeview就到这里了,以后都是跟读取xml有关的东西了
private void TreeView_Selected(object sender, RoutedEventArgs e) { // TreeViewItem tviSelected = e.OriginalSource as TreeViewItem; var tviSelected = e.OriginalSource as TreeViewItem; // Rss std = (Rss)tviSelected.Header; var std = (Rss)tviSelected.Header; if (std.ParentId == -1) { for (int i = 0; i < rsslist.Count; i++) { if (rsslist[i].Id == std.Id) { tx_1.Text = ""; for (int j = 0; j < rsslist[i].Children.Count; j++) { tx_1.Text += Environment.NewLine+rsslist[i].Children[j].XmlUrl + Environment.NewLine; } } } } else { //试着加载一下xml /*// XmlTextReader Reader = new XmlTextReader("http://hzw.gov.cn/wzpzcs/xqywRSSdy/index.shtml"); // XmlTextReader Reader = new XmlTextReader("http://cn.engadget.com/rss.xml"); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Reader);*/ tx_1.Text= wangshangFD(std.XmlUrl); //加载的函数预留着 }//else }//TreeView_Selected新闻热点
疑难解答