I recently discovered that Silverlight 2 has the ICommand interface, but does not have ICommandSource. Basically, this means that you cannot easily execute a command when, say, a user clicks a button. This is pretty strange to me, and renders Silverlight’s ICommand interface next to worthless. If you’re an MVVM zealot like me, I’m sure you must see where I’m coming from here…
So, I corrected the situation. You can now execute commands, pass them parameters, and even honor their CanExecute status, all via some attached property magic. Read more about it, and download the source code, here.