내 셸 창에는 RequestNavigate를 통한보기 전환을 허용하는 작업 영역이 있습니다. 내가보기 - 첫 번째 방법으로 유니티를 사용하고 같은 것을보기 초기화 모양 같은 :InitializeShell with Prism의 모듈 종속성
public partial class WelcomeView : UserControl
{
public WelcomeView(WelcomeViewModel vm)
{
InitializeComponent();
this.DataContext = vm;
}
}
응용 프로그램이로드, 나는 다음과 같이 InitializeShell 보이는 내 BootStrappers 있도록 기본보기로 이동하려는 경우 :
public class WelcomeViewModel : INotifyPropertyChanged
{
public WelcomeViewModel(ISomeService someService)
{
// Use some service
someService.SomeEventOccured += new Action(someService_SomeEventOccured);
}
...
}
: 이제
protected override void InitializeShell()
{
Application.Current.MainWindow = (Window)Shell;
Application.Current.MainWindow.Show();
var regionManager = ServiceLocator.Current.GetInstance<IRegionManager>();
regionManager.RequestNavigate("MainWorkspaceRegion", "WelcomeView");
}
, 내 기본보기, WelcomeView는 WelcomeViewModel 생성자에 주입하고, 차례로, WelcomeViewModel은 생성자 주입하는 일부 서비스가 필요가 필요합니다
InitializeShell을 호출 할 때 모듈이 초기화되지 않았기 때문에 ISomeService가 모듈에서 제공되는 경우 문제가 발생합니다. 즉, WelcomeViewModel을 생성 할 수 없으며 다시 WelcomeView도 사용할 수 없습니다.
어떻게해야할까요? 그래서이 모듈은 의존성이
[ModuleDependency("SomeModule")]
[ModuleDependency("SomeOtherModule")]
public class MyModule : IModule { }
그리고이 포함 종속 된 모듈을 포함