Вы, вероятно, хотите использовать это вместо:
foreach (ITask task in tasks)
{
TaskListItem taskListItem = LoadControl("~/TaskListItem.ascx") as TaskListItem;
taskListItem.Task = task;
taskListItem.TaskCompleteChanged +=
taskListItem_TaskCompleteChanged;
taskListItemHolder.Controls.Add(taskListItem);
}
Это потому, что TaskListItem - это не тип реального элемента управления, а тип класса code-behind элемента управления. Отметьте эту страницу в MSDN (внизу, в контенте сообщества).