2012-01-06 6 views
0

コンストラクターまたはプロパティー内で作成されるDelegateCommandsの複数の例を見てきました。私はそれを追跡しやすくするためにプロパティ内でそれをやっているので、コンストラクタでそれを行う利点があるのだろうかと思っています。 (私の場合にはプリズム、Silverlight4とSimpleMVVMツールキットを使用して)コンストラクターまたはプロパティのDelegateCommandの作成

private DelegateCommand _cmdLogin; 
    public DelegateCommand CmdLogin 
    { 
     get 
     { 
      if (_cmdLogin == null) 
      { 
       _cmdLogin = new DelegateCommand(this.Login, this.CanLogIn); 
      } 
      return _cmdLogin; 
     } 
    } 

VS

public LoginViewModel() 
    { 
     this.LoginCommand = new DelegateCommand(this.Login, this.CanLogin); 
    } 
    public DelegateCommand LoginCommand { get; set; } 

答えて

1

私はあなたがこの上Suiko6272と同じ考えを持っていました。

私は最終的に2番目の解決策を取りに行きました。しかし、私は私の財産でこのメカニズムはかなり長い間

private DelegateCommand _cmdLogin; 
public DelegateCommand CmdLogin 
{ 
    get { return _cmdLogin??(_cmdLogin = new DelegateCommand(this.Login, this.CanLogIn));} 
} 

上記のコード怠惰な負荷delegatecommandを取得し、コードのわずか1行で使用しました。

他のコーダーが読むのが最も簡単で簡単なので、2番目の解決方法が終了しました。

+0

Null-Coalesce演算子についてはわかりませんでしたか?新しい略記に感謝します。 – Suiko6272

関連する問題