У меня есть модель состояния, в которой есть коллекция объектов, в которой также есть коллекция объектов (подумайте о коллекции списков задач):
class StateModel extends ChangeNotifier {
List<TodoList> todoLists;
}
Упрощенный класс TodoList выглядит следующим образом:
class TodoList {
int id;
List<Item> items;
}
class Item {
int id;
String name;
bool status; // true is done, false is not done
}
Теперь одним из моих видов является ListView моих списков задач (где я отображаю только имя), и это восток. Но я хочу иметь детальное представление списка задач (где отображаются данные одного списка задач), где я хочу пометить элементы списка задач как выполненные (т.е. установить их статус в значение true). как мне это сделать? Я мог бы иметь метод в StateModel, который бы находил объект TodoList по id, а затем помечал элементы как выполненные. Это может выглядеть примерно так:
class StateModel extends ChangeNotifier {
// (...)
void markItemAsDone(listId, itemId) {
// find todo list in StateModel
// find item in given list
// mark it as done
// notifyListeners()
}
}
Но это кажется неправильным. То, что я хотел бы иметь, это способ получить модель представления объекта TodoList и использовать ее методы, а не методы StateModel. Как мне подойти к этому? Могу ли я иметь другую модель представления (TodoListState) и иметь коллекцию объектов TodoListState в StateModel? Это вариант использования ProxyProvider?
Надеюсь, мой вопрос ясен, дайте мне знать, если это требует дополнительных объяснений.