【问题标题】:Error on guard clause with Caliburn.MicroCaliburn.Micro 的保护条款错误
【发布时间】:2011-10-06 20:26:32
【问题描述】:

我正在尝试使用 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));
    }

如果我取出属性上的 notify 属性更改,守卫会起作用,但这意味着我的方法永远不会评估。

【问题讨论】:

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


    【解决方案1】:

    您需要将 CanSaveAndNavigateToComposeView 设置为属性而不是方法。

    【讨论】:

    • 未来的干杯!我希望这会进入官方文档。
    猜你喜欢
    • 2012-11-25
    • 2011-10-06
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    相关资源
    最近更新 更多