Спасибо заранее!WPF PRISM 6 DelegateComand ObservesCanExecute
Как использовать ObservesCanExecute в DelegateCommand PRISM 6?
public partial class UserAccountsViewModel: INotifyPropertyChanged
{
public DelegateCommand InsertCommand { get; private set; }
public DelegateCommand UpdateCommand { get; private set; }
public DelegateCommand DeleteCommand { get; private set; }
public UserAccount SelectedUserAccount
{
get;
set
{
//notify property changed stuff
}
}
public UserAccountsViewModel()
{
InitCommands();
}
private void InitCommands()
{
InsertCommand = new DelegateCommand(Insert, CanInsert);
UpdateCommand = new DelegateCommand(Update,CanUpdate).ObservesCanExecute(); // ???
DeleteCommand = new DelegateCommand(Delete,CanDelete);
}
//----------------------------------------------------------
private void Update()
{
//...
}
private bool CanUpdate()
{
return SelectedUserAccount != null;
}
//.....
}
К сожалению, я не знаком с выражениями в C#. Кроме того, я думал, что это будет полезно для других.
Есть ли причина не просто использовать лямбду здесь? Единственное, что я могу думать, это то, что есть некоторое кэширование выражения resolves. – Gusdor
@Gusdor, как сказал alphe, потому что ObserveCanExecute свободно заменяет [CanExecute] (https://msdn.microsoft.com/en-us/library/ff654646.aspx?cs-save-lang=1&cs-lang=csharp # code-snippet-1) Boolean method; поэтому он должен возвращать логическое значение. –