校准微支持IsEnabledChanged?

时间:2014-03-06 11:39:36

标签: wpf action caliburn.micro

我希望在按钮启用状态更改时触发方法,但它不起作用。

中永远不会调用视图模型中的void EnableStartScan(bool isEnabled)方法
<telerik:RadRibbonGroup Header="{x:Static res:StringTable.MachineCtrl}">
    <telerik:RadRibbonButton x:Name="btnStart" 
                             Text="{x:Static res:StringTable.Start}" 
                             Size="Large"
                             LargeImage="/MCSP;component/Resources/Images/Button-Start.png">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="IsEnabledChanged">
                <cal:ActionMessage MethodName="EnableStartScan">
                    <cal:Parameter Value="{Binding ElementName=btnStart, Path=IsEnabled}"/>
                </cal:ActionMessage>
            </i:EventTrigger>
         </i:Interaction.Triggers>
     </telerik:RadRibbonButton>
</<telerik:RadRibbonGroup>

1 个答案:

答案 0 :(得分:1)

Wy首先不能控制ViewModel中按钮的状态?只需在viewModel中添加一个gate方法,并在viewModel中添加触发其他操作

public bool CanSayHello(string name)
{
    if(EvalIfEnable())
    {
        YourOtherMethod();
        return true;
    }

    return false;
}

public void SayHello(string name)
{
    ExecuteYourAction();
}