2016-04-09 3 views
0

У меня есть приложение WPF, и я немного новичок в этом. В значительной степени это сделано с проектированием Views и ViewModels. Застревает при разработке класса Model, который я намерен использовать в качестве слоя, который дает мне необходимые данные, подключаясь к базе данных.Как лучше всего я могу создать свой класс модели

Предположим, у меня есть сетка, которая отображает детали Клиента. Я думал написать что-то вроде удара:

class CustomerModel 
    { 
     public DataView GetCustomerData() 
     { 
      // Fetch the data from Database and prepare a Dataview 
      // return the DataView 
     } 
    } 

Мои проблемы

  • Если я отображая все данные клиента, то описанный выше метод будет достаточно. Но, что, если у меня есть опция фильтра в графическом интерфейсе для Grid, shoud я пишу отдельную функцию, которая получает мне данные на основе параметров фильтра? (Возможно, перегрузите функцию для размещения параметров фильтра)
  • Кроме того, предположим, что у меня есть 10 гридов, которым требуются данные из разных таблиц. Должен ли я писать 10 таких разных классов? (Как CustomerModel, OrderModel, EmployeeModel .etc)

Не могли бы вы, пожалуйста, дайте мне знать, как лучше всего можно решить с компонентом модели?

ответ

0

Если я показываю все данные клиента, то вышеуказанного метода было бы достаточно. Но, что, если у меня есть опция фильтра в графическом интерфейсе для Grid, shoud я пишу отдельную функцию, которая получает мне данные на основе параметров фильтра? (Возможно перегрузить функцию, чтобы приспособить параметры фильтра)

Отдельной логику вашего доступа к данным из модели и использовать Command для доступа к логике (обратите внимание на asyncawait шаблон, чтобы избежать замораживаний вашего пользовательского интерфейса) и наполнят вашу модель. Вы можете использовать ListCollectionView в качестве своих DataGrids ItemSource, чтобы легко добавлять функции фильтрации и сортировки.

Также предположим, что у меня есть 10 гридов, которым требуются данные из разных таблиц. Должен ли я писать 10 таких разных классов? (Как CustomerModel, OrderModel, EmployeeModel.etc)

Зависит от того, что планирование you're сделать, но я думаю, что it'd имеет смысл иметь различные модели для каждой цели. Вы можете поместить в ТРЕБОВАНИЯ основных свойств вместе (например CustomerModel имеет Contact -свойство типа PersonModel и поэтому вы можете добавить PersonalData -свойство с тем же типом к вашим EmployeeModel)

Просто спросите, если вам нужно больше информации, или что-то неясно.

Смежные вопросы