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スレッドまたはSystem.Threading.Timerで遅延が1msの場合に機能することがわかりました。私はツリー内で何が起こるのかわかりませんが、明らかに、木がリフレッシュするためには短時間か、おそらくスレッド変更が必要です。私はこれのためのよりクリーンなソリューションがあるのだろうかと思います。 – telandor
公式のtelerikフォーラムでは、同じことを提案しています。http://www.telerik.com/forums/edit-node-name-after-adding-new-node#ZC0S2WAvXUyJ4XNR63zCuA – telandor