Пожалуйста, предложите (модель взаимодействия модели представления) MVVM дизайн в простом сценарии, обсужденном в теме - PullRequest
0 голосов
/ 14 марта 2010

Уровень данных

У меня есть Order class как сущность. Этот Order объект - мой модельный объект.

Заказ может быть разных типов, пусть будет

  • A

  • B

  • C

  • D

Также у класса Order могут быть общие свойства, такие как Имя, Время создания и т. Д.

Также, в зависимости от типа заказа, существуют разные поля, которые не являются общими.

Просмотр слоя

Представление содержит следующее

  1. Главное меню
  2. ListView

Главное меню содержит кнопку раскрывающегося меню, которая используется для создания заказа на основе типа, выбранного из раскрывающегося списка. Раскрывающийся список содержит типы заказа (A, B, C и D).

Существуют различные пользовательские элементы управления в зависимости от типа заказа. Как, например, если пользователь решает создать заказ типа A, то появляется другое представление с другим полем ввода.

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

Если пользователь выбирает вариант A из раскрывающегося списка, то создается Порядок типа A. И наоборот.

Теперь ниже представлен список, который содержит список заказов, созданных пользователем.

Кому Редактировать любой конкретный пользователь заказа может дважды щелкнуть строку просмотра списка. В зависимости от типа заказа, по которому пользователь щелкнул в просмотре списка, представление этого типа заказа открывается в режиме редактирования. Например, если пользователь выбирает тип заказа A в представлении списка, тогда представление для типа заказа A открывается в режиме редактирования.

Пожалуйста, предложите модель взаимодействия для моделей представления в сценарии, обсужденном выше.

Извините, если запрос очень простой, так как я новичок в MVVM и WPF.

Ответы [ 2 ]

0 голосов
/ 14 марта 2010

Ваша главная проблема в том, как создать правильный вид для выбранного типа заказа? т.е. как выпадающее меню или ListView запускают правильное представление Order для отображения.

Если это то, к чему вы стремитесь, тогда вам понадобится что-то вроде: когда пользователь нажимает на список заказов (например), вам нужно изменить некоторую базовую ObservableCollection и отправить какую-то уведомить или заставить его сделать что-то на объекте Workspace. Вероятно, лучший способ понять это - посмотреть на MvvmDemoApp Джоша Смита, а также на его статью , если вы еще не прочитали ее. С этого момента он сосредоточен на том, как он реализует WorkspaceViewModel, так как я думаю, что это может быть подход или что-то в этом роде, которое вы ищете для своих пользовательских элементов управления представлением Order. (если я вас правильно понял).

0 голосов
/ 14 марта 2010

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

Сделай свой xaml. Теперь, если бы данные могли быть организованы каким-либо образом, обнажив какой-либо набор необходимых методов, как бы это выглядело? Даже не думайте о реальной структуре сущностей, когда воображаете это. Больше наследства? Меньше? На ваше усмотрение - все, что будет лучше для вашего просмотра.

Хорошо, все, что вы только что описали, является вашей ViewModel. Напишите публичный API для этого. Затем подключите его к фактическим базовым объектам.

...