Должен быть лучший способ, чем следующий, для получения "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) не работает (должен быть из-за того, что элемент имеет толькобыл создан)