저는 현재 작성중인 새 응용 프로그램에 Prism을 사용하고 있습니다. 응용 프로그램의 여러 위치에서 사용할 여러 조회 목록이 있습니다. 따라서 한 번 정의한 후 해당 기능이 필요한 모든 곳에서 사용할 수 있습니다. 내 현재 솔루션은 형식화 된 데이터 템플릿을 사용하여 컨트롤을 콘텐트 컨트롤 내부에 렌더링하는 것입니다. 나는이 콘텐츠 컨트롤과 나는이 작업 및 콤보 상자의 selectedItems를가에서 EventAggregator를 통해 이벤트를 publising되어 한 순간에 컨트롤의 나머지MVVM 패턴 및 중첩 뷰 모델 - 통신 및 조회 목록
<ContentControl Content="{Binding CountriesVM}"></ContentControl>
<ContentControl Content="{Binding RgnsVM}"></ContentControl>
<Rest of controls on view>
이 내 창에 다음
<DataTemplate DataType={x:Type ListOfCountriesViewModel}>
<ComboBox ItemsSource={Binding Countries} SelectedItem="{Binding SelectedCountry"/> </DataTemplate>
<DataTemplate DataType={x:Type ListOfRegionsViewModel}>
<ComboBox ItemsSource={Binding Countries} SelectedItem={Binding SelectedRegion} /> </DataTemplate>
public class ParentViewModel
{
SelectedCountry get; set;
SelectedRegion get; set;
ListOfCountriesViewModel CountriesVM;
ListOfRegionsViewModel RgnsVM;
}
하위 뷰 모델은 상위 뷰 모델에서 구독됩니다.
나는이 이벤트가 매우 빨리 끝날 것이라고 상상할 수있는 가장 좋은 방법이라고 확신하지 못한다. 그리고 그것은 다루기 힘들어 질 것이다. 또한 다른 창에서 동일한 뷰 모델을 사용하는 경우 이벤트를 게시하고이 상위 뷰 모델이 구독되어 의도하지 않은 결과가 발생할 수 있습니다.
내 질문이 있습니다 : -
- 이이 화면을 통해 다시 사용할 수있는보기에서 조회 목록을 넣어하는 가장 좋은 방법이 있나요?
- 자식 뷰 모델에 바인딩 된 콤보 박스가 이벤트/중재자를 사용하지 않고 부모 뷰 모델의 관련 속성을 설정하도록하려면 어떻게해야합니까? 예를 들어이 경우 SelectedCountry?
- 내가하려는 일에 대한 대안 구현 제안 사항은 무엇입니까?
나는 명백한 것이 빠져 있고 너무 많은 정보가있어서 어떤 도움이 가장 감사하게 받아 들여지는지 알기가 어렵다.