Caliburn.Micro的保护条款出错

时间:2011-07-16 18:17:22

标签: c# windows-phone-7 mvvm caliburn.micro

我正在尝试使用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 个答案:

答案 0 :(得分:5)

您需要将CanSaveAndNavigateToComposeView转换为属性而不是方法。