Окно сообщения исчезает при использовании команды реле - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть класс 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 () просто проверяет, есть ли обновлениедоступно и показывает окно сообщения.

Затем я привязываю команду к пункту меню в моем представлении.

Когда я нажимаю элемент, окно сообщения выскакивает на долю секунды и снова исчезает.Где проблема?Объяснение высоко ценится, поэтому я могу его понять.

...