2014-07-19 3 views
0

WPF Prism 응용 프로그램을 상속 받았으며 viewmodels가 각각의 뷰 (xaml)에 어떻게 연결되어 있는지 보는 데 어려움을 겪고 있습니다. 때로는 뷰의 코드 뒤에 DataContext가 적절한 viewmodel로 설정되어 있지만 작업중인 응용 프로그램에는이 코드가 설정되어 있지 않습니다. Prism 응용 프로그램에서이 부분을 설정할 수 있습니까?wpf 및 prism : view와 viewmodel 사이의 링크

답변

0

Xaml, Behind Code 또는 View Model Locator에서 설정할 수 있습니다.

XAML

를 사용하여보기 모델을 만들기

아마도 가장 간단한 방법은 선언적 은 XAML에서 해당 뷰 모델의 인스턴스를보기위한 것입니다. 뷰가 인 경우 해당 뷰 모델 객체도 이됩니다. 또한 뷰 모델을 으로 설정하여 XAML에서 뷰의 데이터 컨텍스트로 지정할 수 있습니다. 보기 모델을 만들기

는 프로그래밍

또 다른 방법은 생성자에서 프로그래밍 방식으로 해당보기 모델 인스턴스의 인스턴스를보기위한 것입니다. 다음 코드 예제와 같이 을 데이터 컨텍스트로 설정할 수 있습니다.

은보기 모델의 인스턴스를 생성하고 보기와 연관시킬 뷰 모델 로케이터

또 다른 방법을 사용하여보기 모델을 만들기 뷰 모델 로케이터를 사용하는 것입니다.

여기는 documentation입니다.

1

프리즘을 사용하면보기 모델이 자동으로 설정됩니다. 일반적으로 View에는 AutoWireViewModel = True 속성이 설정되어 있습니다. 나머지는 규칙에 따라 수행됩니다. Prism은 특정 명명 규칙과 일치하는 ViewModel을 찾습니다. 기본 명명 규칙은 뷰의 경우 YouPage이고 뷰 모델의 경우 YouPageViewModel입니다.

보기 모델 규칙은 일반적으로 app.xaml.cs 파일 인 부트 스트 래퍼에서 변경할 수 있습니다. ViewModelLocator를 사용하여 명명 규칙을 사용자 정의 할 수 있습니다. 대부분의 사람들은 기본값으로 남겨 둡니다.

제대로 설정되면 뷰 모델에 필요한 모든 생성자 매개 변수가 IOC 컨테이너의 일부 형식을 사용하여 자동으로 전달됩니다. Autofac, Unity 또는 Ninject와 같은 것. 그것도 부트 스트 래퍼에서 구성됩니다.