从父视图模型wpf-mvvm关闭子窗口
本文关键字:窗口 wpf-mvvm 视图 模型 | 更新日期: 2023-09-27 18:22:17
单击确定/取消后关闭子Window
。
我正在从父mvm模型调用子窗口:
//parent view model
var optionSetViewModel = new OptionSetViewModel();
var optionSet = new OptionSet();
optionSet.SetViewModel(optionSetViewModel);
optionSet.SetOwner(_componentview);
optionSet.ShowDialog();
子Window
的ok和cancel代码是在子视图模型中编写的
private void OkClick()
{
_childWindow.Close();
}
它关闭得很好,但在关闭后,当它从调用它的地方返回到父视图模型时,它抛出了null引用异常。关闭后,我正在访问子窗口值:
_someText = optionSetViewModel.SomeText;
_noteText = optionSetViewModel.NoteText;
_optionsetLanguage = optionSetViewModel.OptionSetSelectedItem;
_optionsetselected = optionSetViewModel.OptionSetSelected.ToString();
使用Catel(请参阅http://www.catelproject.com/)可以基于视图模型关闭视图。因此,关闭视图意味着这样的调用:
myChildViewModel.CloseViewModel();
显示子窗口:
var myChildViewModel = new MyChildViewModel();
uiVisualizerService.Show(myChildViewModel);