Notify one of hundreds of viewmodels with MVVM Light messenger
It should be up to that ViewModel how it handles messages and if it wants to ignore them or act on them.  So that rules out option 3.  That just leaves option 1 and 2.  Option 2 will work but as a developer I wouldn't normally think that setting a property of IsSelected to have side effects and we all know side effects are bad.  I just think it adds a bit more in the maintenance that doesn't need.   I typically just do option 1 and I typically have one method in a class that handles all the registrations for the messages and what they should do.  Just makes maintenance easier if you have a message issue you know where they are all getting registered at.  

And since this is CodeReview and all code is subject to review I would recommend you get rid of "magic" strings and make a class that holds them all.  Something like

public static class Messages
{
    public const string Refresh = "REFRESH";
}