2009-05-29 48 views
3

我一直在使用CodePlex中的MVVM Visual Studio template中的DelegateCommand。這很好地工作有視圖能夠執行他們的ViewModel上的命令。DelegateCommand與「附加行爲」相同嗎?

我在MVVM的「附加行爲」應該使用的地方讀。據我所知,「附加行爲」與DelegateCommand具有相同類型的模式,但由於它沒有命令而被Silverlight使用。

這是正確?或者是「附加行爲」是不同種類的東西,值得學習的是DelegateCommand?

回答

6

DelegateCommand(或RelayCommand,幾乎相同但接受參數)只是ICommand接口的輕量級實現,允許ViewModel輕鬆公開命令。

附加行爲是將事件鏈接到命令的一種方式。例如,大多數WPF控件沒有Command屬性,所以通常不能定義一個命令來響應它們的事件。通過附加的行爲,您可以將任何控件的任何事件「綁定」到ViewModel的命令上。 看看Marlon Grech's implementation,這對我來說似乎最靈活