2012-01-06 39 views
0

我已經看到了在構造函數或屬性本身中創建的DelegateCommands的多個示例。我想知道在構造函數中是否有任何優勢,因爲我一直在屬性中執行它以便更容易地跟蹤它。在構造函數或屬性中創建DelegateCommand

(在我的情況下,使用棱鏡,Silverlight4和SimpleMVVM工具包)

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這一點。

我最終以第二個解決方案結束。但是我沒有使用這種機制在我的財產得到了相當長的一段

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

上面的代碼懶加載delegatecommand,僅1行代碼。

我最終選擇了第二個解決方案,因爲它對於其他編碼人員來說是最清楚/最容易閱讀的。

+0

不知道Null-Coalesce運算符(??)。感謝新的速記。 – Suiko6272 2012-01-09 14:43:07

相關問題