0
我跟隨Stephen關於異步UI的this great article,但不幸的是這不適用於通用Windows應用程序,因爲CommandManager類不可用。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