3
我開始使用Xamarin Forms進行移動應用程序跨平臺開發的項目。我使用的MVVM模型,其中我幾乎沒有幾個小WPF應用程序的經驗。高效使用ICommand界面
我使用ICommand接口在視圖的XAML中創建命令並將它們綁定到它們,默認情況下會涉及大量的重複代碼。 Xamarin.Forms提供了一個ICommand的具體子類型Command,用於討論here,我看到了兩種明顯的方法來實例化它們。
選項#1 - 在構造函數中分配命令。
public class Presenter : ObservableObject
{
public Presenter()
{
DoStuffCommand = new Command(DoStuff);
}
public ICommand DoStuffCommand { get; set; }
private void DoStuff()
{
// VM stuff
}
}
選項#2 - 實例化命令在吸氣
public class Presenter : ObservableObject
{
public ICommand RunCommand { get { return new Command(DoStuff); } }
private void DoStuff()
{
// VM stuff
}
}
許多視圖模型將會有許多命令,和途徑#2避免了一個在構造函數中分配所有這些之一 - 當命令動作不會改變時,我更清楚地知道使用ICommand自己聲明瞭這個動作。另一方面,這將在每次命令觸發時創建一個新的命令實例,這顯然比第一種方法效率更低。
有沒有人有這方面的經驗,和/或可以給我一個這是否會顯着影響性能的想法?有沒有一種方法來改善這一點,比如通過手動銷燬Command對象?
謝謝!
這是偉大的,感謝 - 正是我一直在尋找。驚訝我沒有看到這種模式更經常使用。 – DGoodman
是的,它真的很簡單:) – Cheesebaron