2011-07-16 9 views
1

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)); 
    } 

ガードは私が取る場合は財産上の小道具の変更を通知動作しますが、この私の方法は決して評価されないことを意味します。

答えて

5

メソッドではなくプロパティにCanSaveAndNavigateToComposeViewを作成する必要があります。

+0

そのロブのための乾杯! – deanvmc

関連する問題