【发布时间】:2016-05-20 10:22:35
【问题描述】:
我是使用命令的新手,我正在尝试 CanExecute 根据某些因素启用和禁用我的按钮。但我做错了什么,无法弄清楚。加载时工作正常。 CanExecuteGenerate 函数被命中,模型为空,因此返回 false。 UI 上的按钮被禁用。但是从那里它再也不会碰到 CanExecuteGenerate,导致我的按钮保持禁用状态。谁能看到我错过了什么或做错了什么?
public class MainWindowViewModel: PropertyChangedNotification{
public RelayCommand GenerateCommand { get; set; }
public MainWindowViewModel( ) {
GenerateCommand = new RelayCommand( OnGenerateClicked, CanExecuteGenerate( ) );
Model = new MainModel( );
}
private Func<bool> CanExecuteGenerate( ) {
if( Model != null ) {
return ( ) => ( Model.Name != "" && Model.Title != "" ) ? true : false;
}
return ( ) => false;
}
public void someothermethod(){
Model.Name = "James"
Model.Title = "Doctor"
GenerateCommand.RaiseCanExecuteChanged();
}
public void OnGenerateClicked(){
//Do some other stuff
}
}
【问题讨论】:
标签: c# wpf mvvm-light relaycommand