TL/DR:
如何通知包含它包含Window的某个UserControl调用ICommand/ RelayCommand/ DelegateCommand?
我想CanExecuteChanged回应Window.
扩张:
UserControl:_
<UserControl x:Class="CarProject.CarUserControl" ... >
<!-- lots of stuff here... -->
<Button Name="FuelCar" Command="{Binding FuelCarCommand}"
CommandParameter="{Binding FuelType}" >
Start fueling the car...
</Button>
<!-- lots of stuff here... -->
</UserControl>
Window:_
<Window ...
xmlns:carProject="clr-namespace:CarUserControl;assembly=CarUserControl"
...
>
<!-- lots of stuff here... -->
<carProject:CarUserControl Name="TheCar"/>
<!-- lots of stuff here... -->
</Window>
每当FuelCar单击按钮时,一个自定义命令FuelCarCommand就是Executed。(什么应该是正确的类型FuelCarCommand?简单ICommand的实现?一个RelayCommand子类型或一个DelegateCommand?或者可能只是简单Routed Events的,就是这样......?)。
该命令执行一些业务逻辑操作,并且在工作时(为汽车加油需要时间),其中的其他控件CarUserControl被禁用。
但我还需要Window禁用一些不直接相关的控件CarUserControl(例如FuelStationNumberOne应该禁用,因为它被 占用CarUserControl)。
实现这一目标的正确方法是什么?命令在这里是正确的意思吗?