「childItem」を取得するには、次の方法よりも良い方法が必要です
TaskItem task = (sender as Canvas).DataContext as TaskItem;
TaskItem child = Tasks.CreateTask("New task", task);
TreeViewItem item = treeView.ItemContainerGenerator.ContainerFromItem(task) as TreeViewItem;
item.UpdateLayout();
TreeViewItem childItem = null;
foreach (var i in item.GetDescendantContainers())
{
if (i.GetItem() == child)
childItem = i;
}
何らかの理由で item.ItemGenerator.ContainerFromItem(child) が機能しません (作成されたばかりのアイテムが原因である必要があります)