как разделить представление на модули в m-v-vm

StackOverflow https://stackoverflow.com/questions/1206515

  •  05-07-2019
  •  | 
  •  

Вопрос

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

мой вопрос: как я могу связать все стили из приложения с другими модулями?

будет ли он автоматически распознавать их?

и как будут расположены шаблоны моделей представлений? потому что теперь они находятся в словаре ресурсов, который я объединяю в app.xaml

где я их положил (я хочу, чтобы они были в их модульном проекте), как я могу загрузить эти ресурсы?

Это было полезно?

Решение

То, что вы хотите, легко достигается, если вы используете Prism: http://www.codeplex.com/CompositeWPF

Есть много примеров, чтобы вы начали там.

Единственный вопрос, который вы задаете, на который Prism не отвечает, это ResourceDictionaries, но есть несколько способов обойти это, но я думаю, что это лучший способ: Шаблоны данных ресурсов составного модуля WPF (Prism)

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

Другие советы

хороший вопрос Как сказал Андерсон Имес, вы можете использовать Composite WPF, но есть еще один более простой вариант, который недавно стал доступен, если вы используете Структура управляемой расширяемости (MEF). Существует еще один вопрос, который я задал о том, как сделать именно то, что вы ' говорим об использовании MEF. По сути, он использует функции расширяемости MEF, чтобы сделать ресурсы приложения расширяемыми, а затем ваши модули «вытянуть». ресурсы приложения с их DataTemplates (Views). Затем вы просто добавляете вашу ViewModel в GUI, где хотите, и WPF позаботится о применении вашего View к нему. Я строю приложение на этой модели, и оно работает очень хорошо.

Преимущество использования этого метода заключается в том, что ваш файл app.xaml не должен " знать " обо всех ваших модулях View, и вы можете нарезать и нарезать кубики для приложения любым удобным для вас способом (я предпочитаю сегментировать его по элементам, а затем по слоям).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top