我正在尝试将主窗口中的 RelayCommand 的 CanExecute 绑定到可能不存在的子窗口。我该怎么做?
目前我有:
<MenuItem Header="_Compact"
Command="{Binding Path=CurrentChildViewModel.CompactCommand}"
IsEnabled="{Binding CurrentChildViewModel.CanExecuteCompactCommand,
Converter={StaticResource NullToBooleanConverter}}"/>
然而,这似乎不起作用,因为转换器应该在 CurrentChildViewModel 上工作(而不是 CanExecuteCompactCommand,但我也应该以某种方式包含那个 CanExecuteCompactCommand。
我希望仅当 CurrentChildViewModel != null 并且 CurrentChildViewModel.CanExecuteCompactCommand() 返回 true 时才启用菜单项。
(原因:CurrentChildViewModel是一个窗口的ViewModel,可以打开也可以不打开,如果没有打开,我希望菜单项被禁用。如果它打开,我希望Compact命令的CanExecute方法检查compact命令是否可以执行,这就像在 ChildView (Model) 中的列表视图中至少选择了两个项目。)
有人可以帮忙吗?