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新聞熱點
疑難解答