0

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)。

实现这一目标的正确方法是什么?命令在这里是正确的意思吗?

4

0 回答 0