Ошибка в пункте охраны с Caliburn.Micro - PullRequest
1 голос
/ 16 июля 2011

Я пытаюсь реализовать такую ​​осторожную обработку с Caliburn.Micro, но получаю недопустимое исключение приведения при запуске приложения.

Свойство:

    public Account UserAccount
    {
        get
        {
            return account;
        }
        set
        {
                account = value;
                NotifyOfPropertyChange(() => UserAccount);
                NotifyOfPropertyChange(() => CanSaveAndNavigateToComposeView());
        }
    }

Метод:

    public void SaveAndNavigateToComposeView()
    {
        CommitAccountToStorage();
        navigationService.UriFor<ComposeViewModel>().Navigate();
    }

Охранник:

    public bool CanSaveAndNavigateToComposeView()
    {
        return !(string.IsNullOrEmpty(UserAccount.DisplayName) ||
                 string.IsNullOrEmpty(UserAccount.Username)    ||
                 string.IsNullOrEmpty(UserAccount.Password)    || 
                 string.IsNullOrEmpty(UserAccount.ServerSymbol));
    }

Охранник работает, если я достану уведомление об изменении реквизита для свойства, но это означает, что мой метод никогда не оценит.

1 Ответ

5 голосов
/ 16 июля 2011

Вам нужно сделать CanSaveAndNavigateToComposeView в свойстве, а не в методе.

...