我试图根据用户输入的数据启用和禁用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)
问题是当标题值更改时,按钮不会启用.可能是我错过了什么.谢谢你的帮助!
听起来你需要根据CanExecuteChanged命令提升事件.有关更多详细信息,请参阅http://wpftutorial.net/DelegateCommand.html和 http://msdn.microsoft.com/en-us/library/system.windows.input.icommand.canexecutechanged.aspx
请注意,第一个链接是DelegateCommand的实现,可能不是您实际使用的.对于prism DelegateCommand,您只需要RaiseCanExecuteChanged()在确定是否应该重新启用该按钮时调用该方法.
祝好运!
内特
| 归档时间: |
|
| 查看次数: |
5773 次 |
| 最近记录: |