0
我有一个Telerik RadTreeView
,其底层为CollectionViewSource
。当我向该集合中添加新项目时,它将获得默认名称“新节点”。我想将该节点设置为编辑模式,以便用户可以立即为该节点输入新名称。添加新节点后标记节点名称
设置IsInEditMode
到true
将节点置于编辑模式,但不标记名称。光标只是在开始处,当前名称必须由用户首先标记。是否有可能自动标记当前名称?从我的XAML代码
摘录:
<Style TargetType="{x:Type telerik:RadTreeViewItem}" >
<Setter Property="IsInEditMode" Value="{Binding Path=IsInEditMode}"/>
</Style>
<telerik:RadTreeView.ItemEditTemplate>
<DataTemplate>
<TextBox Text="{Binding NodeName, Mode=TwoWay}" />
</DataTemplate>
</telerik:RadTreeView.ItemEditTemplate>
<HierarchicalDataTemplate DataType="{NodeViewModel}" ItemsSource="{Binding NodeChildren}">
<TextBlock Text="{Binding NodeName}" />
</HierarchicalDataTemplate >
的C#代码只是设置NodeViewModel
到true
的财产 “IsInEditMode
”。
谢谢您的答复 - 这工作。我发现只要将IsInEditMode属性设置为true,即使在Dispatcher线程中完成,或者延迟1ms的System.Threading.Timer,也可以实现。我不知道树中会发生什么,但显然它需要很短的时间,或者可能更换树来刷新。我想知道是否有一个更清洁的解决方案。 – telandor
官方telerik论坛提出相同的建议:http://www.telerik.com/forums/edit-node-name-after-adding-new-node#ZC0S2WAvXUyJ4XNR63zCuA – telandor