Prism Delegate命令不启用按钮

isa*_*vis 4 wpf prism

我试图根据用户输入的数据启用和禁用WPF(PRISM)用户控件中的按钮.

In the constructor I do
SubmitCommand = new DelegateCommand<object>(OnSubmit, CanSubmit);


public ICommand SubmitCommand { get; private set; }

private void OnSubmit(object arg)   
{
     _logger.Log(arg.ToString());
}

private bool CanSubmit(object arg) 
{
    return Title.Length > 0; 
}

private string _title="";

public string Title
{
get { return _title; }
set 
{
    if (_title != value)
    {
           _title = value;
       this.RaisePropertyChanged();
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我在Xaml中绑定SubmitCommand,如下所示

<Button Content="Submit" Width="100" Command="{Binding Path=SubmitCommand}" CommandParameter="{Binding ElementName=TitleText, Path=Text}" />
Run Code Online (Sandbox Code Playgroud)

问题是当标题值更改时,按钮不会启用.可能是我错过了什么.谢谢你的帮助!

Nat*_*eat 5

听起来你需要根据CanExecuteChanged命令提升事件.有关更多详细信息,请参阅http://wpftutorial.net/DelegateCommand.htmlhttp://msdn.microsoft.com/en-us/library/system.windows.input.icommand.canexecutechanged.aspx

请注意,第一个链接是DelegateCommand的实现,可能不是您实际使用的.对于prism DelegateCommand,您只需要RaiseCanExecuteChanged()在确定是否应该重新启用该按钮时调用该方法.

祝好运!

内特