我想知道使用relay命令調用刷新屏幕的函數的好處。在我的應用程序中,我有以下中繼命令設置。使用RelayCommand對象有什麼好處
private RelayCommand _refreshSitesCommand;
public RelayCommand RefreshSitesCommand
{
get { return _refreshSitesCommand ?? (_refreshSitesCommand = new RelayCommand(RefreshSites)); }
}
private RelayCommand _refreshProvidersCommand;
public RelayCommand RefreshProvidersCommand
{
get { return _refreshProvidersCommand ?? (_refreshProvidersCommand = new RelayCommand(RefreshProviders)); }
}
private async void RefreshSites()
{
var sitesStats = await _dataService.GetSiteStats();
if (sitesStats != null)
{
SiteStats.Clear();
foreach (var site in sitesStats)
{
SiteStats.Add(new SiteStatsViewModel(site));
}
SelectedSite = SiteStats[0];
}
}
private async void RefreshProviders()
{
var providers = await _dataService.GetProviders();
if (providers != null)
{
Providers.Clear();
foreach (var provider in providers)
{
Providers.Add(new ProviderViewModel(provider));
}
SelectedProvider = Providers[0];
}
}
然後在我的代碼中,我有以下調用來執行它。
RefreshProvidersCommand.Execute(null);
RefreshSitesCommand.Execute(null);
那麼爲什麼比只調用RefreshSites和RefreshProviders函數更好。然後,我不需要RelayCommand對象的代碼。除了公開2個私有函數的功能以外,使用RelayCommand對象有什麼好處,而不僅僅是使這些函數公開並調用它們。
好的,所以它使得它可以很容易地綁定一個按鈕,以便在按下時運行refreshSitesCommand。這將代替按鈕的點擊/點擊事件,然後調用公共功能。正確? – smehaffie
正確。你想避免背後的代碼 – vidalsasoon