画面を更新する関数を呼び出すために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オブジェクトを使用すると、関数をパブリックにして呼び出すだけでなく、どのような利点がありますか。