0

是否可以在 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。

如果我关闭父视图模型,我想实现它也关闭所有子模型。

此外,我如何检查屏幕在我的情况下的 WPF 窗口中是否从 MAIN VIEW MODEL 处于活动状态/非活动状态?

4

1 回答 1

0

您需要为此编写基础架构。我假设 ShowWindow 正在使用 Caliburn.Micro 的 WindowManager 来显示窗口?在这种情况下,您需要维护对每个打开的窗口的引用。这种父/子关系要求是否只是为了在父关闭时关闭所有子?一种选择是实现您自己的维护打开窗口列表的导体类型,以及维护父/子关系状态的您自己的 IScreen/Screen 类型。

于 2010-12-27T00:43:43.720 回答