C#/WPF
[WPF/Prism] TView, TViewModel 연계하기
kjun.kr
2021. 8. 17. 10:16
728x90
프로젝트 구조가 아래와 같은 폴더구조로 사용되는 경우
아래처럼 App.xaml.cs 단에 정의해준다.
protected override void ConfigureViewModelLocator() { base.ConfigureViewModelLocator(); // TView - TViewModel 과 연계시키기 위함 ViewModelLocationProvider.SetDefaultViewTypeToViewModelTypeResolver((viewType) => { var viewName = viewType.FullName; if (viewName == null) return null; viewName = viewName.Replace(".Views.", ".ViewModels."); var viewAssemblyName = viewType.GetTypeInfo().Assembly.FullName; var viewModelName = $"{viewName}Model,{viewAssemblyName} "; return Type.GetType(viewModelName); }); } |
Prism 에서 View와 ViewModel 간의 연계를 해줄때 이름 규칙이 AView - AViewViewModel 이런식으로 되있다.
그런데 위처럼 프로젝트를 구성한 경우 규직을 바꿔주고싶을때 위처럼 코딩하여 규칙을 바꿀수 있다.
위처럼 하게되면 AView-AViewModel 이렇게 연계가 가능하다.
prism:ViewModelLocator.AutoWireViewModel="True" xaml 단에 정의가 되면 ViewModel 을 자동으로 연계시켜준다.
728x90