简体   繁体   English

从父视图模型关闭子窗口WPF MVMVM

[英]Close child window from parent viewmodel wpf mvvm

Close child Window after clicking ok/cancel. 单击确定/取消后,关闭子Window

I am invoking the child window from parent mvm model: 我从父mvm模型调用子窗口:

//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: Window确定和取消的代码是在子视图模型中编写的:

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();

With Catel (see http://www.catelproject.com/ ) you can close a view based on a view model. 使用Catel(请参见http://www.catelproject.com/ ),您可以基于视图模型关闭视图。 Thus closing a view means a call like this: 因此,关闭视图意味着像这样的调用:

myChildViewModel.CloseViewModel();

To show a child window: 要显示子窗口:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM