-
[DX_WPF] Dynamic Module Project CreateDevExpress/DX_WPF 2024. 1. 26. 14:34
# 프로젝트 생성 절차.
1. WPF 프로젝트 생성.
Dev 템플릿에서 만들어지는 디렉토리에 맞추기 위해 Location에 같은 이름의 디렉토리 경로 하나 더 추가.
.NET 7.0 사용.
=> Class 이름 변경.
2. 프로젝트 설정
=> <ImplicitUsings>enable</ImplicitUsings> 삭제
3. IDynamicModule 추가.
IDynamicModule 은 DXModularWithDynamic.Common에 Package로 참조 되어있음.
같은 솔루션 내 프로젝트면 인텔리젠스로 간단하게 Common 참조.
아래와 같이 인터페이스 참조한 상태면 동적 로드 준비 완료.
4. View&ViewModel 추가
아래 빨간박스 확인하고 추가.
4.1 View
=> 삭제
<UserControl.DataContext>
<ViewModels:ModuleEViewModel/>
</UserControl.DataContext>
4.2 ViewModel
아래와 같이 구성 추가
기본으로 구성되는 Class :ViewModelBase 를 써도 되지만
ViewModelSource 나 ViewModelBase 둘이 동일한 기능. (둘 중 하나만 사용.)
Dev Support QnA
ViewModelSource and ViewModelBase are interchangeable solutions that should not be used together.
5. DevExpress Module 등록 및 주입
Common.Modules 에 모듈 이름 추가.
RegisterModules() 에 등록.
주입이 필요하면
InjectModules() 등록.
Module을 사용하고자 하는 곳에서 Manager를 통해 Navigate해서 사용,
Like~
끝.
DevExpress.MVVM을 사용해서 프로젝트 진행하면 됨.
Ioc Container 추가 버전
ViewModel에 생성자 주입 가능하게~
DXDynamicModule.1.0.6.nupkg0.01MBDXDynamicModule.2.2.2.nupkg0.01MBDXDynamicModule.2.2.4.nupkg0.01MBContainer 전달.
Register<Type>(); 하지 않아도 Type 을 GetInstance해서 가져다 쓸 때 알아서 register
SimpleContainer.Options.ResolveUnregisteredConcreteTypes = true;
기본값은 False;
View.xaml.cs
ViewModel.cs
ViewModel에 생성자 주입이 가능하게 됨.
MainViewModel 을 Ioc Container 로 생성자 주입하려고 할 때
ISupportService 오류나는 현상
MainView.xaml에서 아래 삭제 후
d:DataContext="{dxmvvm:ViewModelSource viewModels:MainViewModel}"
MainViewModel에서 ViewModelBase 상속하면 해결.
728x90'DevExpress > DX_WPF' 카테고리의 다른 글
[DX_WPF] IRegion VisualSerializationMode (0) 2024.02.06 [DX_WPF] Pagination or Infinite Scroll (0) 2024.01.26 [DX_WPF] VisualStateService (0) 2024.01.25 [DX_WPF] POCO View Models (0) 2024.01.24 [DX_WPF] ISupportServices (0) 2024.01.19 댓글