The Cache object in System.Web is pretty freaking nice.
I handle my CommandBinding.CanExecute sort of like this:
CommandBindings[0].CanExecute += (s, e) =>
{
e.CanExecute = NotInsignificantRoutine();
};
In my scenario, the return value of NotInsignificantRoutine() doesn't change inside a 5 second window. What would be the best way to cache in WPF? Import System.Web?