TreeViewItem 使用 TextBox,通过设置TextBox的 isReadyOnly属性来重命名节点名称.普通状态下只读 isReadyOnly=true,触发右键重命名事件是设置为允许修改 isReadyOnly=false.然后设置textbox的键盘输入事件 PreviewKeyUp 和失去焦点事件 LostFocus. TreeView还需要设置一个右键事件 PreviewMouseRightButtonDown.完整的Xaml代码如下:
<TreeView x:Name="tree_view"
PreviewMouseRightButtonDown="tree_view_PreviewMouseRightButtonDown"
>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type data:TreeMode}" ItemsSource="{Binding Children}">
<TextBox x:Name="reName" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,0,0,0"
Text="{Binding Path=Name, Mode=TwoWay}" IsReadOnly="True"
LostFocus="reName_LostFoc