xamDataTree 編集
以下のコードは、xamDataTree で編集を有効にする方法および Products レベルで無効にする方法を示しています。
 
<ig:XamDataTree x:Name="MyTree">
   <ig:XamDataTree.EditingSettings>
      <ig:TreeEditingSettings AllowEditing="True"/>
   </ig:XamDataTree.EditingSettings>
   <ig:XamDataTree.GlobalNodeLayouts>
      <ig:NodeLayout Key="CategoryLayout" TargetTypeName="Category"
                     DisplayMemberPath="CategoryName"/>
      <ig:NodeLayout Key="ProductLayout" TargetTypeName="Product"
                     DisplayMemberPath="ProductName">
         <ig:NodeLayout.EditingSettings>
            <ig:TreeEditingSettingsOverride AllowEditing="False"/>
         </ig:NodeLayout.EditingSettings>
      </ig:NodeLayout>
   </ig:XamDataTree.GlobalNodeLayouts>
</ig:XamDataTree>
 
 
MyTree.EditingSettings.AllowEditing = True
MyTree.GlobalNodeLayouts(1).EditingSettings.AllowEditing = False
 
 
MyTree.EditingSettings.AllowEditing = true;
MyTree.GlobalNodeLayouts[1].EditingSettings.AllowEditing = false;
 
 
編集モードを開始するにはいくつかの異なる方法があります。以下の TreeEditingSettings および TreeEditingSettingsOverride オブジェクト プロパティを設定することで決定できます。
 
- 
DoubleClick - この値は、ダブルクリックした時にノードが編集モードになるかどうかを指定します。 
- 
SingleClick - この値は、クリックした時にノードが編集モードになるかどうかを指定します。 
- 
None - この値はノードをクリックした時に編集モードにならないように指定します。 
 
| Note | 
注: Esc キーを押すと編集モードをキャンセルできます。ENTER キーを押すか、エディター領域の外側でマウスをクリックすると、編集された値が確定されます。 | 
 
以下のリストに示すように、xamDataTree に関連づけられたイベントが 4 つあります。これらのイベントによって、編集中にカスタム ロジックを実行できます。
 
| Note | 
注: NodeEnteringEditMode などの "ing" イベントはすべてキャンセル可能です。 | 
 
TextBox は編集モードになっているノード用のデフォルト エディターで、XamDataTree または NodeLayouts オブジェクトの DisplayMemberPath プロパティで設定された値を編集することしかできません。ノードから離れたところをクリックすると、更新されます。
 
ただし、編集のためにユーザー独自のテンプレートを設定することもできます。これは XamDataTree または NodeLayouts オブジェクトの EditorTemplate プロパティをデータ テンプレートのインスタンスに設定することで実行可能です。DataTemplate で指定されたこのカスタム エディターの DataContext は XamDataTreeNodeDataContext です。このカスタム テンプレートを実装すれば、項目で複数値を編集できます。
 
編集される値にバインドされると、編集をキャンセルできるようにするために、Binding オブジェクトで UpdateSourceTrigger プロパティを Explicit に設定する必要があります。
 
次のコードは、このような動作の実行方法を示します。
 
<ig:NodeLayout Key="ChapterLayout" TargetTypeName="Book" DisplayMemberPath="Title">
   <ig:NodeLayout.EditorTemplate>
      <DataTemplate>
         <Grid>
            <Grid.RowDefinitions>
               <RowDefinition></RowDefinition>
               <RowDefinition></RowDefinition>
            </Grid.RowDefinitions>
            <TextBox Background="Red" Grid.Row="0" Text="{Binding Data.Title, Mode=TwoWay,UpdateSourceTrigger=Explicit}"></TextBox>
            <TextBox Background="Yellow" Grid.Row="1" Text="{Binding Data.Author, Mode=TwoWay,UpdateSourceTrigger=Explicit}"></TextBox>
         </Grid>
      </DataTemplate>
   </ig:NodeLayout.EditorTemplate>
</ig:NodeLayout>
 
 
xamDataTree コントロールからノードを削除することもできます。次のコードで示すように、TreeEditingSettings オブジェクトの AllowDeletion プロパティを設定することで、ノードを削除することを可能にします。削除が有効になったら、DELETE キーを使用してノードを削除できます。
 
<ig:XamDataTree.EditingSettings>
   <ig:TreeEditingSettings AllowEditing="True"
                           AllowDeletion="True"/>
</ig:XamDataTree.EditingSettings>
 
 
MyTree.EditingSettings.AllowDeletion = True
 
 
MyTree.EditingSettings.AllowDeletion = true;