我想知道使用 relay 命令调用刷新屏幕的函数有什么好处。在我的应用程序中,我有以下中继命令设置。
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 对象比仅仅将函数公开并调用它们有什么好处。