解释
- 目标:在我的wpf桌面应用程序中,我想向一个绑定到命令的按钮添加
AccessText
,该命令具有谓词,该谓词评估窗口/控件是否繁忙,从而启用/禁用按钮。 - 状态:按钮命令运行良好,并且在添加
AccessText
之前已正确启用。(我使用MvvmLight支持我的ICommand。) - 问题:添加
AccessText
后,命令仍然绑定,但CanExecute
似乎不再被查询,按钮始终处于启用状态。(我理想的解决方案是没有代码后台只使用XAML。)
示例
XAML:
正常工作:
<Button Command="{Binding NavToStoresSearchCmd}" Content="Stores" Height="30"/>
不起作用:
<Button Command="{Binding NavToStoresSearchCmd}" Height="30">
<AccessText>S_tores</AccessText>
</Button>
C#(视图模型):
public ICommand NavToStoresSearchCmd { get => new RelayCommand(OnNavToStoresSearch, () => IsNotBusy); }
(IsNotBusy
的代码和OnNavToStoresSearch
命令运行良好,CanExecute
也正常工作直到我添加AccessText
。)
RaiseCanExecuteChanged
的地方。 - Андрей NOPRaiseCanExecuteChanged
是MvvmLight的一部分。此外,在添加AccessText
之前我的代码可以正常工作,这让我觉得它被正确调用了。 - David Savage