是否可以在caliburn.micro中设置类似wpf窗口所有者的东西?
我有PARENT VIEW MODEL,从这个模型我用这种方法打开CHILD SCREEN {VIEW MODEL}:
public IEnumerable<IResult> Open()
{
yield return new ShowWindow("ChatScreen")
.InitializeWith(_service
.DetailData(Account, _selectedFriend.Value.Nick),
AvatarImage);
}
此方法创建一个新的WPF WINDOW - CHILD SCREEN并使用一些变量初始化CHILD VIEW MODEL。
我想设置类似这样的东西CHILD_SCREEN.PARENT = PARENT_VIEW_MODEL。
如果我关闭PARENT VIEW MODEL,它也会关闭所有的CHILD MODELS。
还有一种方法可以在MAIN VIEW MODEL中检查我的情况WPF窗口中的屏幕是否处于活动/非活动状态?
答案 0 :(得分:0)
您需要为此编写基础结构。我假设ShowWindow使用Caliburn.Micro的WindowManager来显示窗口?在这种情况下,您需要维护对每个打开的窗口的引用。这个父/子关系是否只是为了在父母关闭时关闭所有孩子?一种选择是实现您自己的Conductor类型,它维护一个打开的窗口列表,以及您自己的IScreen / Screen类型,它们保持父/子关系状态。