CommandBinding问题.如何启用命令按钮 [英] CommandBinding question. How to enable command button
本文介绍了CommandBinding问题.如何启用命令按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的代码在这里>>
public class Player:INotifyPropertyChanging
{
string addressBar;
public string Url
{
get {
return addressBar;
}
set { addressBar = value; OnPropertyChanged("Url"); }
}
public Regex regVillage = new Regex(@"\?doc=\d+&sys=[a-zA-Z0-9]{2}");
RelayCommand _AddAttackTask;
public ICommand AddAttackTask
{
get {
if (_AddAttackTask == null)
{
_AddAttackTask = new RelayCommand(param =>
{
}, param => this.CanAttack);
}
return _AddAttackTask;
}
}
public Boolean CanAttack
{
get{
if (Url == null) return false;
return regVillage.IsMatch(Url);
}
}
}
在xaml上,我有文本框和按钮.文本框由 url
绑定,按钮由 AddAttackTask
绑定.当我更改文本框值时,网址已更改.主要目标是在更改网址时,启用或禁用按钮.但是按钮始终处于禁用状态.
On the xaml, i have textbox and button. Textbox binded by url
, button binded by AddAttackTask
. When i change textbox value,Url changed.Main target is When changing url, button bring to enable or disable. But button always disabled.
I'm getting RelayCommand class from WPF Apps With The Model-View-ViewModel Design Pattern
我的代码有什么问题?
请修复我的命令绑定!
推荐答案
我自己找到了它.
更改属性后,必须调用 CommandManager.InvalidateRequerySuggested();
函数
Must call CommandManager.InvalidateRequerySuggested();
function after changing property
public string Url
{
get {
return addressBar;
}
set { addressBar = value; OnPropertyChanged("Url");
CommandManager.InvalidateRequerySuggested();
}
}
这篇关于CommandBinding问题.如何启用命令按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文