Stephenの非同期UIについては、this great articleに従っていますが、残念ながら、CommandManagerクラスは使用できないため、これはUniversal Windows Appsには適用されません。UWAの非同期UIパターン
この制限を回避するにはどうすればよいですか?
これは、非同期コマンドの基本型です:あなたは多くのコマンドが登録されていたときに、それがパフォーマンスに影響がありますのため
public abstract class AsyncCommandBase : IAsyncCommand
{
public abstract bool CanExecute(object parameter);
public abstract Task ExecuteAsync(object parameter);
public async void Execute(object parameter)
{
await ExecuteAsync(parameter);
}
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
protected void RaiseCanExecuteChanged()
{
CommandManager.InvalidateRequerySuggested();
}
}
複雑なアプリケーションで多くのコマンドを使用すると、「CommandManager」を使用するこの「パターン」は恐ろしいものですが、** ALL **コマンドがそれらのCanExecuteメソッドを再評価するため、パフォーマンスに重大な影響を与えます – Tseng