2016-07-28 156 views
2

在Xamarin形式MVVM的項目,我見過兩個:Xamarin形式 - ICommand和命令之間的區別?

public ICommand MyCommand {...}

public Command MyCommand {...}

是什麼兩者之間的區別,當我應該使用哪個?我可以用Command替換所有的ICommand嗎?沒有不良影響嗎?

+1

它們都基本上提供相同的功能。第一個'ICommand'允許接口的更多自定義實現,而第二個則迫使實現至少有一個'Commad'的基礎。一旦它從'ICommand'繼承,該框架就很開心。 – Nkosi

+1

您應該閱讀有關接口及其實現方式。此外,面向對象編程中的多態的概念。 – Will

回答

5

兩者之間有什麼區別,我應該在什麼時候使用哪個?

它們兩者基本上都提供相同的功能。第一個ICommand允許接口的更多定製實現,而第二個定義包裝ActionICommand實現。它迫使實現至少有一個基地Command,並且如果你不想推出你自己的ICommand的實施,也提供了一個起點。

我可以用Command替換所有的ICommand而沒有不良影響嗎?

一旦你使用了繼承自ICommand的框架,就很高興。

ICommand command = new Command (() => Debug.WriteLine ("Command executed")); 
var button = new Button { 
    Text = "Hit me to execute the command", 
    Command = command, 
}; 
+0

很好解釋。 – ViVi

相關問題