2

Window单击确定/取消后关闭孩子。

我正在从父 mvm 模型调用子窗口:

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

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

child 的 ok 和 cancel 的代码Window写在子视图模型中:

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

它关闭得很好,但是当它从调用它的位置返回到父视图模型时关闭后,它会抛出空引用异常。关闭后,我正在访问子窗口值:

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

1 回答 1

1

使用 Catel(参见http://www.catelproject.com/),您可以关闭基于视图模型的视图。因此关闭视图意味着这样的调用:

myChildViewModel.CloseViewModel();

要显示子窗口:

var myChildViewModel = new MyChildViewModel();
uiVisualizerService.Show(myChildViewModel);
于 2013-07-30T06:47:42.377 回答