как преобразовать список моделей в коллекцию modelVM-s? - PullRequest
0 голосов
/ 01 марта 2019

Я относительно новичок в MVVM и инфраструктуре сущностей.

До сих пор я заставлял свои модели сущностей реализовывать интерфейс INotifyPorpertyChanged, затем в классе WindowVM я заполнял коллекцию ObservableCollection объектами модели, загруженными из БД.с запросом Linq и сделал мои привязки данных в xaml к этому списку (или к выбранному элементу в списке со списком источников данных, установленным в эту коллекцию).

Но я читал на нескольких сайтах и ​​блогах, что это плохопопрактикуйтесь, поскольку я выставляю свою модель непосредственно представлению, и мне приходится загрязнять мои модели логикой, непосредственно связанной с представлением (например, свойство IsSelected, установленное на [Не сопоставлено]).

Как япрочитайте, лучше было бы создать классы ViewModel, деформирующие классы моделей.

Но как мне преобразовать список моделей (возвращаемых запросом linq) в коллекцию modelVM-s?

1 Ответ

0 голосов
/ 02 марта 2019

@ EdPlunkett спасибо!как я не подумал об этом?(Сейчас я чувствую себя настолько глупо)

только небольшая модификация:

Blahs = new ObservableCollection<BlahViewModel>(
                  blahModelQuery.Select(m => new BlahViewModel(m))
        );

это вызовет исключение System.NotSupportedException:

"Только конструкторы и инициализаторы без параметровподдерживаются в LINQ to Entities. "

Blahs = new ObservableCollection<BlahViewModel>(
                  blahModelQuery.Select(m => new BlahViewModel(){model = m})
        );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...