一、核心概念与设计哲学
Caliburn.Micro(以下简称 CM)的 Conductor<IScreen>.Collection.OneActive
是一种专为管理动态界面组合设计的导体(Conductor),其核心功能是:
- 集合管理:维护一组
IScreen
类型的子 ViewModel(如标签页、窗口),通过Items
属性暴露集合。 - 单激活模式:同一时间仅允许一个子项处于激活状态,适合标签式导航、MDI 多文档界面等场景。
- 自动生命周期:通过
ActivateItem
和DeactivateItem
方法触发子项的激活/停用逻辑,与 CM 的生命周期接口(IActivate
、IDeactivate
)深度集成。
设计意义:
- 解耦视图与逻辑:子 ViewModel 无需知晓父容器结构,通过约定实现动态组合。
- 标准化生命周期:统一管理资源加载/释放、数据验证等流程,避免内存泄漏。
二、基础实现:从零构建标签式导航
1. 主 ViewModel 定义
// ShellViewModel.c