Это действительно зависит от других аспектов вашего приложения. Например. как используются данные, возвращаемые функцией ReturnListOfData ()? Есть ли другие компоненты, заинтересованные в этом? Обновляет ли пользователь элементы в списке? Может ли он создать новые элементы, которые он захочет сохранить позже? и т.д.
В простейшем случае у вас будет только свойство List, открываемое вашей viewmodel для просмотра, и вы сбросите этот список до того, что ReturnListOfData () вернул. Вероятно, это будет работать в случае, когда пользователь просто выполняет поиск, ничего не делает с данными позже, и есть только один вид, который заинтересован в этих данных.
Но предположим, что пользователь хочет иметь возможность изменять элементы этого списка. Очевидно, что вам придется каким-то образом отслеживать изменения в этом исходном списке, поэтому, когда пользователь нажимает кнопку сохранения (или отмены), вы отправляете на сервер только те элементы, которые были изменены (или добавлены), или восстанавливаете исходные элементы, если пользователь клики отменить. В этом случае вам понадобится объект Model, в котором будут храниться исходные данные, поэтому ваша модель представления содержит только свою копию.