Должен ли я использовать ObservableCollections в моей модели в M-V-VM - PullRequest
2 голосов
/ 14 июня 2010

Я совершенно новичок в MV-VM и очень новичок в Silverlight, просто сегодня читаю об этом.В качестве примера я создаю модель, содержащую список элементов.Мое представление (Silverlight 4) содержит список, и моя ViewModel будет искать модель, чтобы получить коллекцию, к которой будет привязан список.

У меня такой вопрос.Я думаю, что было бы хорошо использовать ObservableCollection для хранения элементов, к которым привязан список.Это будет ObseravleCollection в ViewModel.Должен ли я также использовать этот тип коллекции в модели или использовать другой тип коллекции и выполнить плавное преобразование между моделью и моделью представления?

Ответы [ 2 ]

1 голос
/ 14 июня 2010

Существует 3 основных сценария (в порядке возрастания сложности):

  1. модель просто обеспечивает доступ к внутренним службам и не кэширует данные, проходящие через нее вообще
  2. модель предоставляет коллекцию элементов, у vms нет собственных коллекций, а затем представления просто привязываются к коллекции в объекте модели.
  3. модель предоставляет источник данных, у vms есть собственная коллекция, которая служит окном вэтот источник данных, и представления связаны с коллекциями в VMS.

В первом случае вы использовали бы List для простой передачи запрошенных данных в vms, в других случаях вы использовали бы ObservableCollection, чтобы либо представления были корректно обновлены посредством привязки (случай # 2), либоvms может корректно обновлять свои собственные коллекции (случай № 3)

0 голосов
/ 14 июня 2010

Обычный способ сделать это - использовать IList / List или что-то подобное в модели, а затем выполнить преобразование во ViewModel.Таким образом, в модели у вас будет что-то вроде IList, а в ViewModel вы преобразуете его в ObservableCollection (обычно в конструкторе ViewModel).

Cheers, Alex

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...