1. 程式人生 > >PRISM 6 命令Command 屬性更改時自動通知命令重新更新命令狀態的方法

PRISM 6 命令Command 屬性更改時自動通知命令重新更新命令狀態的方法

屬性更改時自動通知命令重新更新命令狀態的方法

方法一

1、   定義屬性。性性中新增此句ExecuteDelegateCommand.RaiseCanExecuteChanged();

private bool _isEnabled;         public bool IsEnabled         {             get { return _isEnabled; }             set             {                 SetProperty(ref _isEnabled, value);

                ExecuteDelegateCommand.RaiseCanExecuteChanged();

            }         } 2、定義命令

public DelegateCommand ExecuteDelegateCommand { get; private set; }

3、例項化命令

 ExecuteDelegateCommand = new DelegateCommand(Execute, CanExecute);

4、定義執行命令的函式

 private void Execute()         {             UpdateText = $"Updated: {DateTime.Now}";         }

        private bool CanExecute()

        {             return IsEnabled;         }

方法二

1、   定義屬性。

private bool _isEnabled;         public bool IsEnabled         {             get { return _isEnabled; }             set             {                 SetProperty(ref _isEnabled, value);

            }

        } 2、定義命令

 public DelegateCommand DelegateCommandObservesProperty { get; private set; }

3、例項化命令

 DelegateCommandObservesProperty = new DelegateCommand(Execute, CanExecute).ObservesProperty(() => IsEnabled);

4、定義執行命令的函式

 private void Execute()         {             UpdateText = $"Updated: {DateTime.Now}";         }

        private bool CanExecute()

        {             return IsEnabled;         }

方法三

1、   定義屬性。性性中新增此句ExecuteDelegateCommand.RaiseCanExecuteChanged();

private bool _isEnabled;         public bool IsEnabled         {             get { return _isEnabled; }             set             {                 SetProperty(ref _isEnabled, value);

            }

        } 2、定義命令

public DelegateCommand DelegateCommandObservesCanExecute { get; private set; }

3、例項化命令

DelegateCommandObservesCanExecute = new DelegateCommand(Execute).ObservesCanExecute(() => IsEnabled);

4、定義執行命令的函式

 private void Execute()         {             UpdateText = $"Updated: {DateTime.Now}";         }