我TabControl Region
在外壳视图中使用棱镜。
每个都TabItem
包含AView
和AViewModel
。
我可以TabItem
使用IsActive
.AViewModel
IsActive
属性设置为true
仅针对当前选定的 TabItem。
我在Shell
视图中有一个按钮,它负责为TabItems
.
根据当前活动启用禁用按钮的正确方法是什么TabItem
(设置可以执行command
为true
或false
),并且只为活动视图执行逻辑。从放置在其他视图中的按钮?
我已经设法command
通过创建来执行composite command
,然后将命令从 注册AViewModel
到composite command
,并将其中的按钮绑定shell
到composite command
。
这种方法的问题是,如果任何命令返回false
它们都是除了一个(活动的TabItem
)之外的,则没有任何命令被执行。
CompositeCommand 类维护一个子命令列表(DelegateCommand 实例)。CompositeCommand 类的 Execute 方法只是在每个子命令上依次调用 Execute 方法。CanExecute 方法类似地调用每个子命令的 CanExecute 方法,但是如果任何子命令无法执行,CanExecute 方法将返回 false。换句话说,默认情况下,只有当所有子命令都可以执行时,才能执行 CompositeCommand。 资源