2013-06-25 2 views
1

Здесь по схожим я имею в виду, что мои приложения имеют множество вопросов с 5/6 страницами. Типы свойств, которые я собираюсь использовать, будут одинаковыми для всех моих приложений. единственное, что изменится, - это порядок, где возникает вопрос, как страница -1/2/3/..Структура представлений-моделей в качестве основы для аналогичных приложений

Я создал несколько базовых типов, чтобы те же приложения использовали те базовые типы, где большая часть общие атрибуты будут определены с использованием атрибутов данных.

, как вы можете видеть на картинке: enter image description here

Теперь я должен создать ViewModels для каждого отдельного мнения. Модели viewmodels смогут использовать эти базовые типы в виде свойств, а некоторые определенные для конкретного приложения проверки будут определены в той же модели viewmodel.

Я думал об этой структуре для всех своих приложений, потому что тогда я повторял бы то же самое снова и снова. Я понимаю, что каждая точка зрения должна иметь свою собственную модель просмотра. Итак, я буду ссылаться на сборку базового типа и создавать отдельные модели просмотра для приложения, используя только те типы, которые мне нужны для определенного вида.

Является ли это хорошим шагом вперед, поскольку я хочу создать основу для всех своих приложений?

+0

Я не могу видеть изображение! Я все равно загрузил его с моего компьютера. –

ответ

0

Короткий ответ: Да, это выглядит хорошо для меня

Длинный ответ:

Это хорошая идея, чтобы иметь базовый абстрактный ViewModel, который может быть использован повторно. Я бы сказал, что вы, вероятно, хотите, чтобы на самом деле было больше 1.

One под названием ViewModelBase или BaseViewModel, который содержит все, что подходит для ViewModels, например, реализация INotifyPropertyChange. Этот класс case обычно также реализует интерфейс IViewModel, чтобы указать, что это ViewModel. А затем базовый класс для каждого из ваших бизнес-логических доменов (в вашем случае ваш набор вопросов/ответов), где вы установили общую бизнес-логику

Для проверки, если, скажем, вы реализуете IDataErrorInfo, вы можете использовать реализацию он в самом общем классе возможен, тот, который обладает свойствами для проверки. Как правило, некоторые из них будут происходить в базовом классе, некоторые из производных классов

Для каждого вашего вида вы можете выбрать конкретную модель ViewModel, которую хотите использовать. Иногда это довольно легко благодаря наследованию. Вы также можете использовать повторное использование разделов Views в UserControls (и дополнять стилями).

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