2013-07-15 8 views
2

확인/취소를 클릭 한 후 자식 Window을 닫습니다.부모보기 모드에서 자식 창 닫기 wpf mvvm

내가 부모 MVM 모델에서 자식 창 호출 오전 : 확인을위한

//parent view model 
var optionSetViewModel = new OptionSetViewModel(); 
var optionSet = new OptionSet(); 
optionSet.SetViewModel(optionSetViewModel); 

optionSet.SetOwner(_componentview); 
optionSet.ShowDialog(); 

코드 및 아이 Window에 대한 취소는 아이 뷰 모델로 작성 :

private void OkClick() 
{   
    _childWindow.Close(); 
} 

그것은 후 잘 닫는하지만, 상위 뷰 모델로 되돌아 가면 닫히고 null 참조 예외가 발생합니다. 가까운 내가 자식 창 값을 accesing하고 후 : Catel와

_someText = optionSetViewModel.SomeText; 
_noteText = optionSetViewModel.NoteText; 
_optionsetLanguage = optionSetViewModel.OptionSetSelectedItem; 
_optionsetselected = optionSetViewModel.OptionSetSelected.ToString(); 
+0

우리가 optionSet.ShowDialog()'후 코드를 볼 필요가있을 것이다;' – Bolu

+0

업데이트 된 코드의 혈관 고리가 할 check – user2189168

+0

메신저 클래스가 ViewModel 사이의 닫기를 처리하도록해야합니다. – Rudi

답변

1

(http://www.catelproject.com/ 참조) 당신은보기 모델을 기반으로보기를 닫을 수 있습니다.

myChildViewModel.CloseViewModel(); 

는 자식 창을 표시하려면 : 따라서보기를 종료하면이 같은 전화를 의미

var myChildViewModel = new MyChildViewModel(); 
uiVisualizerService.Show(myChildViewModel);