There is an unsaved comment in progress. You will lose your changes if you continue. Are you sure you want to reopen the work item?
DelegateCommand should use DelegateReference to reference target object
It's a common complaint that the CanExecuteChanged handlers of DelegateCommand get unexpectedly garbage collected. While it's simple enough to work around the problem, I think it would be worth changing Prism to avoid the problem appearing:
In DelegateCommand, rather than referencing the EventHandler with a WeakReference for the CanExecuteChanged handlers, Prism should instead use the DelegateReference (as used by the Event Aggregator).
DelegateReference holds a weak referece to the target object of the Delegate, instead of the handler function itself.
This would then negate the need for holding an explicit reference to the EventHandler for the majority of handlers, and would still not present a memory leak.