我有一个带有 ListBox 和 3 个按钮的 DocumentListView.Xaml。
在 UserControl 后面是一个 DocumentListViewModel,它有 3 个按钮,它们的命令属性绑定到 3 个 RelayCommands。
我有 3 个控制器,例如 AdministrationController、BillingController、ReportController。
每个控制器都有 ObservableCollections,例如 Customer 1 : N Order 1: N Document 与另一个控制器相同。
在一个控制器中,我有一种特殊的绑定情况。当我的 DocumentListViewModel 未由其父 ViewModel(如 OrderViewModel)初始化时(因为没有加载/存在订单),那么我的 UserControl 有 3 个启用的按钮。好的,用户可以按下 3 个按钮,但没有任何反应,但仍然非常混乱,最重要的是我的用户界面中的一致性已经消失。
如何将按钮的命令默认设置为“已禁用”?
将 Buttons IsEnabled 属性设置为 false 无济于事,因为按钮将永远处于禁用状态。没有 CanExecute TRUE 会将其设置为 IsEnabled = true。
并且我不想引入另一个属性 IsButtonEnabled ......那很愚蠢,因为那时我的按钮逻辑背后有两个世界的 winforms 和 wpf ...... ICommand 应该足够了。