我的代码在这里>>
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
。当我更改文本框值时,网址发生了变化。主要目标是更改网址时,按钮会启用或禁用。但按钮总是禁用。
我正在从以下位置获取 RelayCommand 类具有模型-视图-视图模型设计模式的 WPF 应用程序 http://msdn.microsoft.com/en-us/magazine/dd419663.aspx#id0090016
我的代码有什么问题?
请修复我的命令绑定!
我自己找到的。
必须打电话CommandManager.InvalidateRequerySuggested();
改变属性后的功能
public string Url
{
get {
return addressBar;
}
set { addressBar = value; OnPropertyChanged("Url");
CommandManager.InvalidateRequerySuggested();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)