Silverlight 및 PRISM에서 다른 모듈의 ViewModel에서 매개 변수를 전달하여 한 모듈에있는 팝업 하위 창을 여는 좋은 방법은 무엇입니까?Silverlight 4 및 Prism의 팝업 창
0
A
답변
1
IChildWindowService라는 두 모듈에 모두 알려진 공통 인터페이스/클래스를 만들고 부트 스트 래퍼에 IChildWindowServe/ChildWindowService를 등록합니다.
//Highly simplified version
//Can be improved by window reuse, parameter options, stronger eventing
public class ChildWindowService : IChildWindowService
{
public ChildWindowService(IServiceLocator container)
{
_container = container;
}
public void Show<TViewModel>(TViewModel viewModel = null, Action<TViewModel, bool?> callBack = null) where TViewModel is IViewModel
{
var viewName = typeof(TViewModel).Name.Replace("Model", string.Empty);
// In bootstrapper register all instances of IView or register each view one by one
var view = _container.GetInstance<IView>(viewName);
viewModel = viewModel ?? _container.GetInstance<TViewModel>();
view.DataContext = viewModel;
var window = new ChildWindow();
window.Content = view;
var handler = (s,e) => { window.Close(); }
viewModel.RequestClose += handler;
view.Closed += (s,e) => { viewModel.RequestClose -= handler; }
// In silverlight all windows show as Modal, if you are using a third party you can make a decision here
window.Show();
}
}
이 이벤트는 점 B 모듈 A의 뷰 모델이 이벤트를 발생시킵니다
public class OpenChildWindowWithParameters : CompositePresentationEvent<ParamEventArgs>{}
점 A에서 매개 변수를 전달하는 것, 공통 CompositePresentationEvent을 만듭니다. 모듈 B의 컨트롤러가 이벤트를 등록하고 이벤트에 반응합니다. 모듈 B의 컨트롤러는 하위 창 서비스를 종속성으로 사용합니다. 이벤트가 발생하면 Controller는 Module B에서 VM을 만들고 이벤트에서 매개 변수를 전달하며 Service를 사용하여 ChildWindow를 표시합니다.
관련 문제
- 1. Silverlight 4 및 브라우저 외부
- 2. silverlight 4 및 C#
- 3. Silverlight 4 및 SQLite
- 4. Silverlight 4 및 System.Runtime.Serialization
- 5. Silverlight 4 브라우저 외부 연결 창
- 6. ASP.NET의 팝업 창 상단에 팝업 창 열기
- 7. Silverlight에서 ViewModel 책임 및 하위 창 팝업
- 8. 팝업 창
- 9. Silverlight 3/PRISM의 프레임 영역 어댑터 및 RegionContext
- 10. Silverlight 3 및 Silverlight 4 공존
- 11. 크롬 확장 팝업 창?
- 12. 팝업 창 최대화 버튼
- 13. Silverlight 4 및 SAMI 자막
- 14. Unity 2 및 Silverlight 4
- 15. 코드 커버리지 및 Silverlight 4
- 16. silverlight 4 및 레이아웃 스타일
- 17. Silverlight 4 및 TCP 소켓
- 18. BounceEase 및 Silverlight 4 BarSeries
- 19. Silverlight 4 및 병렬 포트
- 20. winforms의 팝업 창
- 21. android의 팝업 창 크기
- 22. 보기/팝업 창 전환
- 23. 팝업 창 및 상황에 맞는 메뉴
- 24. 링크에서 jqgrid 및 팝업 모달 창
- 25. Google지도 : 아이콘 아이콘 및 팝업 창
- 26. 자바 스크립트 팝업 창 및 다시로드
- 27. Silverlight 4 화면 캡처
- 28. asp.net의 팝업 창
- 29. 셀레늄 - 팝업 창
- 30. android의 팝업 창
ChildWindowService 코드를 게시 할 수 있습니까? 나는 네가 다른 점을 가지고 있다고 생각해. – Prazanna
@Prazanna 자식 창에 코드 추가 – Agies