3
我的代碼是在這裏>>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
。當我改變文本框的值,Url改變了。主要目標是當改變URL時,按鈕啓用或禁用。但按鈕始終禁用。
我從WPF Apps With The Model-View-ViewModel Design Pattern
越來越RelayCommand類有什麼錯我的代碼?
請修復我的命令綁定!
變化'CanAttack'簡單'回報(URL!= NULL)'後先調用
CommandManager.InvalidateRequerySuggested();
功能。這樣你確定它不是你的正則表達式。或者使用調試器來檢查相同的事情。 – 2010-10-03 10:56:20正則表達式正確。問題是URL更改後,CanExecute不會引發。 – ebattulga 2010-10-03 11:10:08
你有沒有在Url單獨的用戶控制按鈕? – NVM 2010-10-03 17:13:10