Я работаю над программой для моего босса, которая создает дисплей, на который он может смотреть на мониторе, когда он приходит в ИТ-офис, чтобы он мог быстро увидеть, над чем мы работаем, с первого взгляда (аналогично scrum доска). Таким образом, Task_Board.Models.TaskModel - это класс, который я создал. У меня проблемы с удалением задач из базы данных. У меня он работает в другой части кода, чтобы удалить заданную задачу c, но когда я пытаюсь удалить все задачи, поместив этот лог c в al oop, он выдает ошибку выше. Вот метод, который работает для указанного объекта c:
private void DoneDelete_Click(object sender, RoutedEventArgs e)
{
try
{
var item = (TaskModel)DoneList.SelectedValue;
TaskItem task = NinjectRepo.Instance.TaskItemRepo.Get(item.TaskId);
NinjectRepo.Instance.TaskItemRepo.Remove(task);
Update();
}
catch (Exception a)
{
MessageBox.Show("System Message: " + a.Message, "ERROR");
}
}
И это оригинальный проблемный код:
for (int i = ToDoList.Items.Count - 1; i >= 0; i--)
{
var item = (TaskModel)ToDoList.Items.GetItemAt(i);
TaskItem task = NinjectRepo.Instance.TaskItemRepo.Get(item.TaskId);
NinjectRepo.Instance.TaskItemRepo.Remove(task);
}
Я попытался установить выбранное значение в другом в приведенном ниже коде, но он выдает ту же ошибку.
for (int i = ToDoList.Items.Count - 1; i >= 0; i--)
{
ToDoList.SelectedValue = ToDoList.Items.GetItemAt(i);
var item = (TaskModel)ToDoList.SelectedValue;
TaskItem task = NinjectRepo.Instance.TaskItemRepo.Get(item.TaskId);
NinjectRepo.Instance.TaskItemRepo.Remove(task);
}
Я не понимаю, что происходит между методом, который работает, и тем, который не работает, потому что это в основном те же логики c не так ли?
РЕДАКТИРОВАТЬ: Вот как я заполняю списки:
items = NinjectRepo.Instance.TaskItemRepo.Get().OrderBy(q=>q.Rank).AsQueryable();
//update ToDo Lists
var tdlist = await items.Select(q => new TaskModel { TaskId = q.TaskId, Status =
q.Status, Rank = q.Rank, Type = q.Type.Name, Assigned = q.Date, Description = q.Description })
.Where(items => items.Status.ToLower() == ToDoStatus.ToLower()).ToListAsync();
ToDoList.ItemsSource = tdlist;
ToDoList.Columns[1].Visibility = Visibility.Hidden;
ToDoList.Columns[4].Visibility = Visibility.Hidden;