У меня есть класс RelayCommand:
public class RelayCommand : ICommand
{
private readonly Func<bool> canExecuteEvaluator;
private readonly Action methodToExecute;
public RelayCommand(Action methodToExecute, Func<bool> canExecuteEvaluator)
{
this.methodToExecute = methodToExecute;
this.canExecuteEvaluator = canExecuteEvaluator;
}
public RelayCommand(Action methodToExecute)
: this(methodToExecute, null)
{
}
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
public bool CanExecute(object parameter)
{
if (this.canExecuteEvaluator == null)
{
return true;
}
else
{
bool result = this.canExecuteEvaluator.Invoke();
return result;
}
}
public void Execute(object parameter)
{
this.methodToExecute.Invoke();
}
В моей модели представления я создаю свои команды следующим образом:
public RelayCommand CmdUpdate { get; private set; }
CmdUpdate = new RelayCommand(() => Updater.CheckForUpdate());
Updater.CheckForUpdate () просто проверяет, есть ли обновлениедоступно и показывает окно сообщения.
Затем я привязываю команду к пункту меню в моем представлении.
Когда я нажимаю элемент, окно сообщения выскакивает на долю секунды и снова исчезает.Где проблема?Объяснение высоко ценится, поэтому я могу его понять.