user2189168
user2189168

Reputation: 199

Close child window from parent viewmodel wpf mvvm

Close child Window after clicking ok/cancel.

I am invoking the child window from parent mvm model:

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

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

The code for ok and cancel for child Window is written in child view model:

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

It closing fine but after closing when it is returing to parent view model from where it is called it is throwing null reference exception. After close I am accesing the child window values:

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

Upvotes: 2

Views: 2143

Answers (1)

Geert van Horrik
Geert van Horrik

Reputation: 5724

With Catel (see http://www.catelproject.com/) you can close a view based on a view model. Thus closing a view means a call like this:

myChildViewModel.CloseViewModel();

To show a child window:

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

Upvotes: 1

Related Questions