我的代码是here>>
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上,我有textbox和button。url绑定的Textbox,AddAttackTask绑定的按钮。当我改变文本框的值时,url changed.Main目标是当改变Url时,按钮被带到启用或禁用。但按钮始终处于禁用状态。
我正在从WPF Apps With The Model-View-ViewModel Design Pattern获取RelayCommand类
我的代码出了什么问题?
请修复我的命令绑定!
发布于 2010-10-04 12:33:37
我自己找到的。
更改属性后必须调用CommandManager.InvalidateRequerySuggested();函数
public string Url
{
get {
return addressBar;
}
set { addressBar = value; OnPropertyChanged("Url");
CommandManager.InvalidateRequerySuggested();
}
}https://stackoverflow.com/questions/3849265
复制相似问题