2013-07-20 133 views
0

我想編輯的根樹型視圖,爲創建活動C#編輯樹型視圖

 <TreeView Height="182" Name="infoBox_treeview" Margin="0,2,0,182" BorderBrush="#FFA5A5A5" BorderThickness="2"> 
      <TreeViewItem Header="t1"></TreeViewItem> 
      <TreeViewItem Header="t2"> 
       <TreeViewItem Header="t21"></TreeViewItem> 
       <TreeViewItem Header="t22"></TreeViewItem> 
      </TreeViewItem> 
      <TreeViewItem Header="t3"></TreeViewItem> 
      <TreeView.ItemContainerStyle> 
       <Style TargetType="{x:Type TreeViewItem}"> 
        <EventSetter Event="MouseDoubleClick" Handler="infobox_item_edit"></EventSetter> 
       </Style> 
      </TreeView.ItemContainerStyle> 
      <TreeView.ContextMenu> 
       <ContextMenu Name="infoBox_treeview_menu"> 
        <MenuItem Header="Добавить ссылку" Name="infobox_menu_addlink" Click="infobox_menu_addlink_Click"></MenuItem> 
        <MenuItem Header="Удалить ссылку" Name="infobox_menu_dellink"></MenuItem> 
       </ContextMenu> 
      </TreeView.ContextMenu> 
     </TreeView> 

在C#:

private void infobox_item_edit(object sender, RoutedEventArgs e) 
{ 
    var selItem=(TreeViewItem)this.infoBox_treeview.SelectedItem; 
    selItem.Header = new TextBlock() { Text = selItem.Header.ToString() }; 
} 

但我有兩個問題:

1)此代碼沒有按」 t改變標題上的TextBlock

2)此XAML設置所有項目的事件,我只想編輯根項目...

感謝您的幫助!

回答

0

1)您需要2個事件來處理編輯和保存部分....您已經編寫了保存在編輯部分的代碼。在項目更改時使用OnTreeViewSelectedItemChanged捕獲零件。
請檢查這個鏈接Create Event Handler for TreeViewItem in WPF
2)你是什麼意思的根,只有最上面的節點或有孩子的節點?

0

您可以使用HierarchicalDataTemplate以與子節點不同的方式設置TreeView中的父節點。使用這種方法,您可以將事件處理程序添加到每個父節點,而不是僅子節點。您可以從this page on MSDN瞭解更多信息。