2016-11-01 9 views
0

Я разрабатываю очень небольшое приложение в WPF, и я решил использовать фреймворк Prism 6.0 после того, как его не удовлетворили Caliburn.Micro и MVVM Light Toolkit.Prism 6.0 с WPF без инъекции зависимости?

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

Если я хочу иметь оболочку, которая является основным окном с определенной областью, которая будет либо отображать ViewA, либо ViewB в своей области, как я могу это сделать без использования Unity или UnityBootstrapper? У меня возникли проблемы с этим, поскольку все примеры онлайн и учебных материалов используют Unity или какую-либо другую систему DI.

EDIT: Чтобы уточнить следующее: я стараюсь избегать Unity/DI, потому что это заставляет меня использовать модули, где это приложение очень мало, и я бы не получил преимущества от модулей, и это будет служить только для создания проекта труднее понять для новых глаз.

+0

Единство - это излишество, но Призма - нет? Призма использует DI, поэтому вы можете использовать Unity или сворачивать свои собственные. – Will

ответ

1

Призма полагается на IoC для того, чтобы функционировать. У вас должно быть что-то, что разрешает объекты в приложении Prism. Это может быть один из встроенных контейнеров DI или пользовательская реализация, которая использует простой Activator.CreateInstance.

Независимо от того, используете ли вы поддерживаемый контейнер DI или свою собственную реализацию, вам не требуется использовать модули. Если вы им не нужны, не используйте их. Ничто в Призме не заставляет вас использовать модули.

Мне было бы интересно узнать, что относительно Призмы, которую вы чувствуете, является «излишним», поскольку это перегруженный термин, и обычно эти комментарии не очень четко сформулированы.

+0

Как настроить регион без модуля? Например, в этом [примерном коде] (https://github.com/PrismLibrary/Prism-Samples-Wpf/blob/master/HelloWorld/Modules/ModuleA/ModuleAModule.cs) конструктор модуля получает менеджера региона и область задана функция Initialize() модуля. –

+0

Просто определите регион. https://github.com/PrismLibrary/Prism-Samples-Wpf/blob/master/HelloWorld/HelloWorld/Views/MainWindow.xaml –

+0

Попросите менеджера региона в вашем ViewModels, когда вам это нужно. –